我有一个以灰度绘制的缓冲图像,我想将其转换为颜色,其中颜色映射到灰色的某些范围。例如,0-100之间的所有灰色映射为红色,100-255映射为绿色。看起来像缓冲图像查找操作是这样做的方式,但我不完全确定如何做到这一点。例如,如果灰度图像的RGB是(50,50,50),我想将该像素转换为(255,0,0),而不是(255,255,255)。查找是否是正确的方法?
答案 0 :(得分: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.");
}
注意:根据您的要求更改图像类型。