gpt4 book ai didi

Java改变png图片背景颜色

转载 作者:行者123 更新时间:2023-12-02 08:47:11 27 4
gpt4 key购买 nike

我一直在关注一些 StackOverflow 链接,使用 Graphics2D 来更改 BufferedImage 的背景颜色。

我正在从事的项目要求我从给定的网址读取 png 图像;检索到的 png 图像具有透明背景,我想将其设置为白色。

这是我所拥有的:

String u = this.format() ;
BufferedImage image = null ;
try{
URL url = new URL(u) ;
image = ImageIO.read(url) ;
Graphics2D graphics = image.createGraphics() ;
graphics.setBackground(Color.WHITE) ;
graphics.clearRect(0, 0, image.getWidth(), image.getHeight()) ;


ImageIO.write(image, "png", new File(outPath + fileName)) ;
graphics.dispose() ;

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

我遇到的问题是,当我查看图像时,图像显示为实心白框。显然,我在检索到的现有图像上覆盖了白色背景。

如何保留原始图像并仅更改背景?或者先设置背景然后覆盖检索到的图像?

最佳答案

1-加载您的图像

image = ImageIO.read(url) ;

2- 创建一个相同大小的新BufferedImage

BufferedImage background =
new BufferedImage(
image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB
);

3-用所需的颜色填充背景图像

Graphics2D g2d = background.createGraphics();
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, background.getWidth(), background.getHeight());

4-将原始图像绘制到背景上...

g2d.drawImage(image, 0, 0, null);
g2d.dispose();

背景现在已填充所需的颜色,并在其顶部绘制了图像。

关于Java改变png图片背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61002012/

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