我有一個緩衝的圖像繪製在灰度,我想將其轉換爲顏色,其中顏色映射到灰色的一些範圍。例如,0-100之間的所有灰色映射到紅色,100-255映射到綠色。它看起來像緩衝圖像查找操作是這樣做的方式,但我不完全確定如何做到這一點。例如,如果灰度圖像的RGB是(50,50,50),我想將該像素轉換爲(255,0,0),而不是(255,255,255)。查找是否是正確的方法?java緩衝圖像顏色與RGB不同的值
0
A
回答
1
如果灰度圖像的RGB爲(50,50,50),我想的是像素(255,0,0)
轉換試試這個
try {
BufferedImage image = ImageIO.read(new File("resources/Tulips.jpg"));
BufferedImage newImage = new BufferedImage(image.getWidth(), image.getHeight(),
BufferedImage.TYPE_INT_ARGB);
int newColorRGB = new Color(255, 0, 0).getRGB();
for (int x = 0; x < image.getWidth(); x++) {
for (int y = 0; y < image.getHeight(); y++) {
Color color = new Color(image.getRGB(x, y));
int red = color.getRed();
int blue = color.getBlue();
int green = color.getGreen();
if (red == 50 && blue == 50 && green == 50) {
newImage.setRGB(x, y, newColorRGB);
} else {
newImage.setRGB(x, y, color.getRGB());
}
}
}
ImageIO.write(newImage, "png", new File("resources/Tulips1.png"));
} catch (IOException e) {
e.printStackTrace();
System.out.println("Sorry, I cannot find that file.");
}
注意:根據您的要求更改圖像類型。
+0
謝謝,我認爲這會做到這一點。不知道是否有一種「蠻力」的方式來做到這一點。 –
+0
欲瞭解更多信息,請參閱[如何將BufferedImage轉換爲某種顏色?](http://stackoverflow.com/questions/6853384/how-to-convert-a-bufferedimage-to-a-certain-colour )。 @Hovercraft Full Of Eels使用'RGBImageFilter'發佈了一些示例代碼。 – Braj
相關問題
- 1. Java,緩衝圖像的顏色與原始圖像完全不同
- 2. Java顏色與RGB?
- 3. 圖像的RGB顏色的平均值
- 4. 從不同顏色的圖像中獲取RGB值
- 5. 使用緩衝圖像寫RGB圖像
- 6. Xcode的RGB顏色與Photoshop不同RGB RGB
- 7. MATLAB繪圖與RGB顏色
- 8. C# - 與C++不同的位圖的RGB緩衝區
- 9. 如何更改Java緩衝圖像的顏色
- 10. java中的RGB顏色與VB.net
- 11. PIL返回的RGB值與RGB顏色不匹配
- 12. Java顏色直方圖所有顏色不是RGB分離
- 13. 隱蔽顏色的RGB值在Java中
- 14. MagiC++ RGB顏色值
- 15. RGB LED - 顏色值
- 16. 插值RGB顏色
- 17. 以顏色對象的形式獲得緩衝圖像中像素的顏色
- 18. 從RGB圖像去除顏色的
- 19. 結合幾個圖像的RGB顏色
- 20. 圖像讀取的RGB顏色?
- 21. OpenCV:如何填充每個像素的每個RGB顏色值的RGB圖像?
- 22. 如何繪製帶有顏色色調的緩衝圖像
- 23. 與緩衝圖像
- 24. java的緩衝圖像與紅色面具
- 25. direct2d中顏色的RGB值
- 26. 的Java Applet緩衝圖像
- 27. 幀緩衝區/顏色緩衝區?
- 28. 噪聲kinect顏色(rgb)圖像
- 29. RGB圖像CMYK和軟化顏色
- 30. 24位圖圖像和16位圖圖像中的RGB顏色
'LookupOp'更適用於*每個*顏色分別映射到* one *其他顏色的情況。所以根據描述,這聽起來像是一種方法,因爲Braj的答案在這裏可能更適合。你可以用'if(red <50 ...)'替換'if(red == 50 ...)'來真正處理顏色*範圍*。如果你的目的是爲圖像「着色」/「染色」(保持所有像素的亮度相同,但給它們一定的顏色),這可能會更復雜一點。如果是這樣的話,你應該在問題中指出。 – Marco13