[RGB颜色在绘制缓冲图像时在包括alpha时改变

问题描述 投票:0回答:1

我正在尝试写一个缓冲图像并读回其颜色。尽管alpha保持不变,但RGB颜色似乎有所变化。我无法理解其背后的原因。修复此问题的任何帮助,表示赞赏。我需要图像返回与我写的颜色完全相同的颜色。

    try {
        BufferedImage img=new BufferedImage(256, 256,
                BufferedImage.TYPE_INT_ARGB);

        Graphics graphics =
                img.createGraphics();
        int r=45;int g=45; int b=100; int a=50;
        System.out.println("Red  "+r+"   Green "+g+"    Blue "+b+"   alpha "+a);

        graphics.setColor(new Color(r,g,b,a));
        graphics.fillRect(10,10, 40, 40);

        Integer i=img.getRGB(23,23);
        Color c=new Color(i,true);

        System.out.println("Going to read color back");
        System.out.println("Red  "+c.getRed()+"   Green "+c.getGreen()+"    Blue "+c.getBlue()+"   alpha "+c.getAlpha());

    } catch (Exception e) {
        e.printStackTrace();
    }

程序输出:红色45绿色45蓝色100 alpha 50

将要读回彩色

红色46绿色46蓝色102 alpha 50

java image graphics awt alpha
1个回答
0
投票
graphics.setComposite(AlphaComposite.Src)
© www.soinside.com 2019 - 2024. All rights reserved.