我使用以下代码当前转动的像素值(最初是用java.awt.image.PixelGrabber中对象创建)的阵列为图像对象:使用Java的ImageIO将像素数组转换为Image对象?
public Image getImageFromArray(int[] pixels, int width, int height) {
MemoryImageSource mis = new MemoryImageSource(width, height, pixels, 0, width);
Toolkit tk = Toolkit.getDefaultToolkit();
return tk.createImage(mis);
}
是否有可能实现相同的结果使用ImageIO包中的类,所以我不必使用AWT Toolkit?
Toolkit.getDefaultToolkit()似乎不是100%可靠的,有时会抛出一个AWTError,而ImageIO类应该始终可用,这就是为什么我有兴趣改变我的方法。
谢谢bcash,但是当我尝试这个代码时,我得到了一个java.lang.ArrayIndexOutOfBoundsException异常。有任何想法吗? – 2008-09-24 02:53:40
我认为这很接近,我们可能需要克里斯的更多细节与细节?这看起来应该起作用......你的整数是什么?他们是RGB? ARGB?某种打包格式? – 2008-09-24 04:37:39
像素来自PixelGrabber,因此: int [] pixels = new int [width * height]; PixelGrabber pg = new PixelGrabber(img,0,0,width,height,pixels,0,width); pg.grabPixels(); – 2008-09-24 05:17:13