Java 更改背景颜色 png 图像
Java change background color png image
我一直在关注一些使用 Graphics2D 更改 BufferedImage 背景颜色的 Whosebug 链接。
我正在进行的项目要求我从给定的 url 中读取 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- 用所需的颜色填充 background
图像
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();
background
现在填充了所需的颜色,并在上面绘制了图像。
我一直在关注一些使用 Graphics2D 更改 BufferedImage 背景颜色的 Whosebug 链接。
我正在进行的项目要求我从给定的 url 中读取 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- 用所需的颜色填充 background
图像
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();
background
现在填充了所需的颜色,并在上面绘制了图像。