我在IntBuffer
中拥有图像的RGB数据,并希望通过绘画将其显示在JPanel
上。最有效的方法是什么?
修改
我目前通过以下代码将数据绘制到BufferedImage
,但想知道是否存在更快的方法:
Raster raster= image.getData();
intBuffer.get( ((DataBufferInt) raster.getDataBuffer()).getData() );
image.setData(raster);
答案 0 :(得分:2)
BufferedImage image = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);
int[] rgb = ((DataBufferInt)image.getRaster().getDataBuffer()).getData();
然后只需将IntBuffer的内容复制到rgb数组中并绘制BufferedImage。对阵列的任何更改都将直接更改图像。当然,图像需要具有正确的尺寸。