检查图像是否包含任何(半)透明像素的最快方法?

时间:2011-02-25 09:43:51

标签: algorithm image-processing

有没有人知道有没有更好的方法来检查某些图像是否包含一个(半)透明像素旁边的所有像素并检查它们的alpha通道?

[pseudo]
    for each pixel in image:
        if pixel.alpha != 0xff:
            return true

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以使用BufferedImage.getType() 要么 ColorModel.hasAlpha() 检查是否有alpha通道。

如果有Alpha通道,则必须检查各个像素。

答案 1 :(得分:1)

是的,有一种比简单地迭代所有像素更好的方法。如果您已经为Alpha通道存储了mip-map,则可以从上到下检查任何非不透明像素。

JAI支持这些:将alpha通道或整个图像放入javax.media.jai.ImageMIPMap,然后使用getImage(int level)从上到下迭代其级别

谷歌搜索的一些关键字:gauss-laplace image pyramids, mipmaps