Java如何判断一张图片是否具有透明度?

9

在Java中,是否有可能检查png图像是否具有透明度?如果png图像不包含透明度,则需要将所有png图像转换为jpg。Java中是否有方法来检查这一点?

1个回答

17

你可以检查图像的颜色模型是否包含 Alpha 通道:

BufferedImage img = ImageIO.read(/* from somewhere */);

if (img.getColorModel().hasAlpha()) {
    // img has alpha channel
} else {
    // no alpha channel
}

请注意,此代码仅检测已保存带有Alpha通道的图像。带有Alpha通道的图像仍可能完全不透明(即所有像素的Alpha值均为1)。


@dacwe 不对。完全不透明的颜色的 alpha 值等于最大值 1。完全透明的颜色的 alpha 值应该为 0。 - Joni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接