当使用setRGB 和 getRGB 方法处理 BufferedImage 时,我注意到两件事情:
在某些系统上,setRGB 和 getRGB 方法的速度非常慢(比修改 int[] 数组慢两个数量级)。
不能保证setRGB 后紧跟的 getRGB 返回的是相同的像素。
由于 JavaDoc 中的setRGB 已经明确说明了这一点:
...对于具有 IndexColorModel 的图像, 将选择最接近颜色的索引。
因此我可以直接操作 BufferedImage 的 int[] 像素,例如:
int[] a = ((DataBufferInt) tmp.getRaster().getDataBuffer()).getData();
我想知道:在直接操作 int[]
像素时,是否存在任何已知的缺点或需要注意的问题?
if (doneCopying) { displayBuf = tmpBuf; } draw(displayBuf);
的方法来解决问题。 - Ben Taitelbaum