是否有可能改變現有的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。 –