这是将GIF图像转换为PNG格式的解决方案。问题是生成的 PNG 图像的深度为 8 位(至少在我的情况下)。
有没有办法强制它们进入 32 位深度?最好的办法是使用javax.imageio.ImageIO
图书馆。
只需转换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);