确定Png图像是否具有100%透明背景

时间:2014-05-19 10:05:45

标签: java image imagemagick png

我正在尝试编写一个代码,我得到一个png / jpeg图像。如果是png图像,我想检查它的背景是否100%透明。如果是,我想使用图像magick添加白色背景。

目前我使用image magick"识别-format%A new.png"根据透明度返回true或false。

但是,有没有办法使用image magick或java代码找出100%的背景透明度?

1 个答案:

答案 0 :(得分:1)

您可以迭代图像中的每个像素,并检查最重要的字节(即alpha通道)是否为零(如here所述)。 这样做是这样的:

public static boolean isFullyAlpha(File f) throws IOException {
    BufferedImage img = ImageIO.read(f);
    for(int y = 0; y < img.getHeight(); y++) {
        for(int x = 0; x < img.getWidth(); x++) {
            if(((img.getRGB(x, y) >> 24) & 0xFF) != 0) {
                return false;
            }
        }
    }
    return true;
}