Java的变化背景颜色png图片

卡斯:

我一直在下面使用的Graphics2D改变BufferedImage的背景颜色一些StackOverflow的链接。

我工作的项目要求在我从给定的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 现在填充有所需的颜色,并具有涂在顶O它的图像。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章