gpt4 book ai didi

java - 在 Java2D 中使用 ColorConvertOp 时,有没有办法设置默认颜色透明度?

转载 作者:太空宇宙 更新时间:2023-11-04 08:26:33 25 4
gpt4 key购买 nike

我正在将具有透明度的图像转换为不具有透明度的色彩空间。我想为透明区域设置背景颜色。现在,当我将其转换时,最终图像中任何透明区域都会变成黑色。当我在 ColorSpace 之间进行转换时,有办法做到这一点吗?这是我用来在颜色空间之间进行转换的代码:

public BufferedImage convertColorspace( BufferedImage source, int newType) {
BufferedImage destination = new BufferedImage( source.getWidth(), source.getHeight(), newType);
ColorConvertOp colorConvertOp = new ColorConvertOp(null);
colorConvertOp.filter(source, destination);
return destination;
}

// here is how its used
BufferedImage converted = convertColorspace(combinedImage, BufferedImage.TYPE_3BYTE_BGR);

我正在从 BufferedImage.TYPE_4BYTE_ARGB 转换为 BufferedImage.TYPE_3BYTE_BGR。

最佳答案

怎么样:

    BufferedImage temp = new BufferedImage(source.getWidth(), source.getHeight(), 
BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = temp.createGraphics();
g2.setColor(Color.green);
g2.fillRect(0, 0, source.getWidth(), source.getHeight());
g2.drawImage(0, 0, source, null);
g2.dispose();

然后使用 temp 而不是 source 调用 colorConvertOp.filter

关于java - 在 Java2D 中使用 ColorConvertOp 时,有没有办法设置默认颜色透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8392902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com