有誰知道有沒有更好的方法來檢查,如果一些圖像包含(半)透明像素旁邊去低谷的所有像素,並檢查他們的alpha通道?檢查圖像是否包含任何(半)透明像素的最快方法?
[pseudo]
for each pixel in image:
if pixel.alpha != 0xff:
return true
在此先感謝。
有誰知道有沒有更好的方法來檢查,如果一些圖像包含(半)透明像素旁邊去低谷的所有像素,並檢查他們的alpha通道?檢查圖像是否包含任何(半)透明像素的最快方法?
[pseudo]
for each pixel in image:
if pixel.alpha != 0xff:
return true
在此先感謝。
你可以使用BufferedImage.getType() 或 ColorModel.hasAlpha() 檢查,如果有一個alpha通道。
如果存在alpha通道,則必須檢查單個像素。
是的,有一種比簡單迭代所有像素更好的方法。如果你已經有儲存阿爾法頻道的MIP映射你可以從頂部檢查底部的任何非不透明像素。
JAI支持這些:把alpha通道或整個圖像分割成javax.media.jai.ImageMIPMap然後使用getImage(int level)
一些關鍵字使用Google迭代從頂部其水平底:gauss-laplace image pyramids, mipmaps