【问题标题】:Java check if an image has transparencyJava检查图像是否具有透明度
【发布时间】:2012-04-30 16:22:17
【问题描述】:

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

【问题讨论】:

    标签: java graphics transparency


    【解决方案1】:

    您可以检查图像的颜色模型是否包含 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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2021-08-07
    • 2017-05-08
    • 2013-05-05
    • 1970-01-01
    • 2018-07-07
    相关资源
    最近更新 更多