我使用方法BufferedImage
从getRGB()
获取像素。像素存储在名为data[]
的数组中。在对数据数组进行一些操作之后,我需要再次创建一个BufferedImage
,以便我可以将它传递给一个模块,该模块将显示来自此数据数组的已修改图像,但我坚持使用它。
答案 0 :(得分:21)
我使用getRGB()方法从BufferedImage获取像素。该 像素存储在名为data []的数组中。
请注意,这可能非常慢。如果你的BufferedImage支持它,你可能想要访问底层的 int [] 并直接从那里复制/读取像素。
例如,要将 data [] 快速复制到新BufferedImage的基础 int [] 中:
BufferedImage bi = new BufferedImage( w, h, BufferedImage.TYPE_INT_ARGB );
final int[] a = ( (DataBufferInt) res.getRaster().getDataBuffer() ).getData();
System.arraycopy(data, 0, a, 0, data.length);
当然,您需要确保 data [] 包含与BufferedImage相同的像素(本例中为ARGB)。
答案 1 :(得分:2)
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
然后再次设置像素。
bufferedImage.setRGB(x, y, your_value);
PS:如评论中所述,请使用@TacticalCoder的答案
答案 2 :(得分:-1)
您可以使用setRGB方法为新图像中的像素设置RGB(int)值。