美文网首页
java修改24位深度png图片为32位深度

java修改24位深度png图片为32位深度

作者: 板栗炖牛肉 | 来源:发表于2020-11-12 15:02 被阅读0次

前言

在做图片切割时,发现切除来的图片空白部分变成了黑色背景,发现属性是24位深度

解决方案

1.先上代码

        BufferedImage image = readImage(url);
        BufferedImage bufferedImage = new BufferedImage(width, height, image.getType());
        Graphics2D gr = bufferedImage.createGraphics();
        //创建、透明背景
        bufferedImage = gr.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
        gr = bufferedImage.createGraphics();
        //重绘
        gr.drawImage(image.getScaledInstance(width, height, Image.SCALE_DEFAULT), 0, 0, width, height, null);
        gr.dispose();
        File file = new File(outFile);
        ImageIO.write(bufferedImage, "png", file);

2.主要代码(这一步主要是将创建的空白图片重置为透明png图片)

        bufferedImage = gr.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
        gr = bufferedImage.createGraphics();

3.其他说明(这一步作保真处理)

image.getScaledInstance(width, height, Image.SCALE_DEFAULT)

4.其他代码

    /**
     * 图片、读取
     *
     * @param url
     * @return
     * @throws Exception
     */
    private static BufferedImage readImage(String url) throws Exception {
        File file = new File(url);
        FileInputStream fis = new FileInputStream(file);
        BufferedImage image = ImageIO.read(fis);
        return image;
    }

相关文章

网友评论

      本文标题:java修改24位深度png图片为32位深度

      本文链接:https://www.haomeiwen.com/subject/dwkpbktx.html