【问题标题】:Convert GIF images to PNG format, 32 bits depth将 GIF 图像转换为 PNG 格式,32 位深度
【发布时间】:2013-06-16 03:58:49
【问题描述】:

Here 是一种将 GIF 图像转换为 PNG 格式的解决方案。问题是生成的 PNG 图像的深度为 8 位(至少在我的情况下)。

有没有办法强制它们为 32 位深度?最好使用javax.imageio.ImageIO 库。

【问题讨论】:

    标签: java image png converter gif


    【解决方案1】:

    只需转换BufferedImage,使用所需的颜色模型重新绘制副本。效率不是很高,但很实用:

          File input = new File("/tmp/input.gif");
          File output = new File("/tmp/output.png");
          BufferedImage im1 = ImageIO.read( input );
          BufferedImage im2 = new BufferedImage(im1.getWidth(), im1.getHeight(), 
                    BufferedImage.TYPE_4BYTE_ABGR);
          im2.getGraphics().drawImage(im1, 0, 0, null);
          ImageIO.write(im2 , "png", output);
    

    【讨论】:

    • 太棒了,非常感谢!我并不关心这个工具的效率:我只是不想手动转换我的 GIF 图像;)
    • 请记住,原则上,保存为 8 位 PNG 不会造成任何损失。 GIF 图像始终被编入索引(256 色调色板)。
    • 是的,但是 GIF 图像在包含在 PDF 文档中时质量会下降(至少在我使用的 PDF 工具中),8 位 PNG 图像也是如此,但 32 位 PNG 图像不是。
    猜你喜欢
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 2021-06-04
    • 1970-01-01
    • 2010-10-19
    • 2016-04-06
    相关资源
    最近更新 更多