Syn*_*r0r 6 java bufferedimage pixel
使用setRGB和getRGB方法处理BufferedImage时,我注意到两件事:
的setRGB和的getRGB方法可在某些系统(多达大小比modifiyng中的int []数组慢两个数量级)慢得令人难以置信.
有没有保证一个的getRGB遵循setRGB会给你回传给相同的像素
最后一点从setRGB的JavaDoc基本上非常清楚,它指出:
...对于具有IndexColorModel的图像,选择具有最近颜色的索引.
看到我可以直接在BufferedImage的int []像素中工作,我可以通过这样做来访问,例如:
int[] a = ((DataBufferInt) tmp.getRaster().getDataBuffer()).getData();
Run Code Online (Sandbox Code Playgroud)
我想知道:当直接操纵像素时,是否有任何已知的缺点/陷阱int[]?
getData() 让您可以访问支持 int 数组的全部目的正是为了这种优化,因此好处很可能超过缺点。
缺点取决于您如何使用缓冲图像。如果您在编辑时将其绘制到屏幕上,则可能会在屏幕上遇到一些伪像(例如未及时着色的像素),在这种情况下,您应该考虑双缓冲(这确实涉及复制整个图像)每次刷新)。
| 归档时间: |
|
| 查看次数: |
6477 次 |
| 最近记录: |