【发布时间】:2015-01-22 09:31:20
【问题描述】:
我看到一个关于将 BufferedImage 转换为像素/字节数组的线程。直接在图像上使用getRGB 可以,但并不理想,因为收集所有像素太慢了。我尝试了简单地抓取像素数据的替代方法。
//convert canvas to bufferedimage
BufferedImage img = new BufferedImage(500, 500, BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g2 = img.createGraphics();
canvas.printAll(g2);
g2.dispose();
System.out.println(img.getRGB(0, 0)); //-16777216 works but not ideal
byte[] pixels = ((DataBufferByte) img.getRaster().getDataBuffer()).getData();
for(byte b : pixels){
System.out.println(b); //all 0 doesnt work
}
但是,整个字节数组似乎是空的(用 0 填充)。
【问题讨论】:
标签: java arrays rgb bufferedimage pixels