我找不到我的问题的任何解决方案,希望你能帮助我。我有一个缓冲图像(例如img),并且我想调整它(使用其像素数组)以恰好适合100px(100 x 100)。我发现的所有解决方案都是为了在绘图时“拉伸”图像,但我真的需要这个数组。 我想到了一个算法,这尝试之一:BufferedImage的大小调整算法
BufferedImage resized = new BufferedImage(100,100,BufferedImage.TYPE_INT_ARGB);
for(int i = 0; i < img.getWidth(); i++){
for(int j = 0; j < img.getHeight(); j++){
resized.setRGB(i*(100/img.getWidth()), j*(100/img.getHeight()), img.getRGB(i, j));
}
}
我无法解释它(当然,不是英文)它做什么,但我想你可以很容易地看到它(在原始图像中的每个像素( IMG),把它放在新的BufferedImage(调整)在postition(老位置*调整因素)。(希望这是一个很好的说明)。 但是但是,它不工作,我只得到零:( 有人能告诉我要修改什么,或给我一个算法的其他例子?(不管它有多快,只要我能理解它)
(我真的希望它不是转发,因为我真的不能f IND另一个问题/解决方案,目的是在阵列调整:/)
问候:)
我不是在图像方面的专家,但我认为你会对此有所倒退。试着将'i'和'j'在从0到100的'resized'索引上迭代。然后使用缩放因子将'resize [i] [j]'设置为'img'中的一个像素。 –
这个问题是否重复? http://stackoverflow.com/questions/9417356/bufferedimage-resize –
即使你“真的需要数组”(我不明白为什么,从你的代码中),它会*更快*只是使用' AffineTransformOp'并使用'TYPE_NEAREST_NEIGHBOR'向下采样图像。如果需要,您仍然可以从生成的图像中获取支持数组。 – haraldK