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);