package kuro.misc.image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class TransparentColor { private static String FILE_IN = "C:/work/temp/test.png"; private static String FILE_OUT = "C:/work/temp/test-out.png"; public static void main(String[] args) throws IOException { BufferedImage image = ImageIO.read(new File(FILE_IN)); ImageIO.write(image, "PNG", new File(FILE_OUT)); } }
こんな感じのコードを書いて、透過色指定をした「test.png」を読み込ませると、 出力される「test-out.png」は透過色指定がなくなってしまう。
BufferedImage image = ImageIO.read(new File(FILE_IN)); System.out.println( "Image transparency = " + image.getTransparency()); ----------- Image transparency = 1
getTransparency の出力値の意味は以下の通り。
package java.awt; public abstract interface Transparency { public static final int OPAQUE = 1; public static final int BITMASK = 2; public static final int TRANSLUCENT = 3; public abstract int getTransparency(); }
読み込んだ時点で 透過情報のあるImageだとは扱われていない模様。