java缓冲图像颜色操作具有不同的RGB值

标签 java colors bufferedimage

我有一个以灰度绘制的缓冲图像,我想将其转换为颜色,其中颜色映射到灰色的某些范围。例如,0-100 之间的所有灰色都映射为红色,100-255 之间的所有灰色都映射为绿色。看起来缓冲图像查找操作就是执行此操作的方法,但我不完全确定如何执行此操作。例如,如果灰度图像的RGB是(50,50,50),我想将该像素转换为(255,0,0),而不是(255,255,255)。查找操作是正确的方法吗?

最佳答案

if the RGB of the grayscale image is (50,50,50), I want to convert that pixel to (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.");
}

注意:根据您的要求更改图像类型。

关于java缓冲图像颜色操作具有不同的RGB值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23304537/

相关文章:

java - 使用单个或优化查询进行批量插入

java - 在局部变量声明语句中, block 语句内部,声明语句的哪一部分是声明符?

java - 当 header 看起来正确时,为什么 Springframework 返回空主体?

html - 在表格行上交替背景颜色的最佳实践

java - 图像旋转方法在​​内存中留下一些东西

java - jar 中提供什么格式的大背景图像?

java - 令人愉悦的调色板随机颜色生成

java - 是否可以在 JLabel 中使用颜色十六进制,如#02f7fc?

matlab - 检查每个像素的特定颜色(在特定阈值内)

java - 动态更新 BufferedImage 时遇到问题