是否有可能改变现有的BufferedImage对象的色彩空间,而所有像素复制到一个新的BufferedImage对象?我找不到这样的方法,但也许我只是没有找到它?我想将颜色空间从BufferedImage.TYPE_4BYTE_ABGR更改为BufferedImage.TYPE_BYTE_BINARY。更改现有BufferedImage的颜色空间?
1
A
回答
2
号
TYPE_4BYTE_ABGR
表示与蓝,绿,红和3个字节存储的颜色8位RGBA颜色分量和1个字节的alpha图像。
TYPE_BYTE_BINARY
表示一个不透明的字节填充1,2或4位图像。
的像素的尺寸是不同的 - 4B VS 1B。 即使可以在Java结构对象中修改图像的元数据,由于像素大小不同,因此不应该适用(*)。
(*)的新缓冲区较小,所以理论上,应该可以通过创建包含的相同缓冲液(但不充分使用)的新图像重新使用存储器。
你仍然需要编写自己的循环它迭代像素在放置在缓冲顺序,修改自己的色彩空间(ARGB->强度),并将其写入到该源像素/ 4所住的地方。
尝试使用此构造函数重用缓冲区:BufferedImage(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, Hashtable properties)
相关问题
- 1. 使用HSV颜色空间更改白色和黑色颜色
- 2. 更改颜色空间和图像
- 3. 更改现有颜色的RGB值?
- 4. Rotating BufferedImage改变它的颜色
- 5. BufferedImage颜色操作
- 6. BufferedImage颜色变化
- 7. 如何更改qtabbar空白空间的背景颜色pyqt
- 8. 如何用#000000格式更改BufferedImage的颜色?
- 9. OpenCV - cvtColor不会改变颜色空间,它会改变颜色
- 10. 可以在改变颜色时实现OnScrollListener()时更改颜色
- 11. 如何获得UIImage的负颜色不改变颜色空间
- 12. 更改绘画颜色时,现有笔画也会更改
- 13. 更改颜色的kCGImageAlphaOnly呈现CGImage
- 14. 更改颜色
- 15. 更改颜色
- 16. 更改颜色
- 17. 更改颜色
- 18. 更改颜色
- 19. 更改颜色
- 20. 更改adobe空间任务栏中图标的背景颜色
- 21. 如何根据工作空间更改eclipse窗口的颜色?
- 22. 更改alpha更改颜色
- 23. 更改空白背景颜色
- 24. 更改NavigationDrawer的颜色点击颜色
- 25. 在BufferedImage上执行setRGB会将像素更改为黑色而不是颜色
- 26. 改变现有NSAttributedString的颜色
- 27. 改变颜色的颜色改变所有圆形颜色
- 28. 更改具有空值的单元格的背景颜色
- 29. 在特定时间后更改颜色
- 30. 更改颜色中间可见行
*“没有将所有像素复制到新的BufferedImage对象?”*为什么? –
因为它比为它创建临时对象更优雅,请使用for循环复制所有像素,并将临时对象分配给原始的BufferdImage。 –