有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为灰度缓冲区图像添加颜色

找不到答案,可能太简单了。我有一个灰度BufferedImage(基本上是黑白PDF的一部分),我想在图像上画一个红色框。然而,当我这样做并保存图像时,红色框显示为灰色

如何正确地将颜色添加到灰度BufferedImage

我想我需要转换颜色模型(?)从灰度到RGB?虽然我不需要将图像的黑白部分转换为颜色,也就是说,生成的图像可以是黑白的。只要我能在图像上画一条红线,而不把它保存为灰色阴影

图像文件是GIF格式的


共 (1) 个答案

  1. # 1 楼答案

    通过使用以下代码,我可以将红色矩形添加到灰度图像中。看看这对你是否有效。否则请告诉我们您面临的错误

    public static void main(String[] args) throws IOException {
    BufferedImage old = ImageIO.read(new File("download.gif"));
    int w = old.getWidth();
    int h = old.getHeight();
    
    BufferedImage img = new BufferedImage(
            w, h, BufferedImage.TYPE_INT_ARGB);
    
    Graphics2D g2d = img.createGraphics();
    g2d.drawImage(old, 0, 0, null);
    g2d.setColor(Color.red);
    g2d.drawRect(10, 10, 100, 100);
    g2d.dispose();
    
        ImageIO.write(img, "gif", new File("out.gif"));  
    
        }