我有一個單通道PNG文件,我想用它作爲Porter-Duff繪圖操作的Alpha掩碼。如果我沒有任何選項加載它,則生成的位圖具有RGB_565配置,即視爲灰度。如果我將首選配置設置爲ALPHA_8,則會將其加載爲灰度ARGB_8888。Android:加載alpha掩碼位圖
我該如何說服Android將此文件視爲alpha蒙版而不是灰度圖像?
mask1 = BitmapFactory.decodeStream(pngStream);
// mask1.getConfig() is now RGB_565
BitmapFactory.Options maskOpts = new BitmapFactory.Options();
maskOpts.inPreferredConfig = Bitmap.Config.ALPHA_8;
mask2 = BitmapFactory.decodeStream(pngStream, null, maskOpts);
// mask2.getConfig() is now ARGB_8888 (the alpha channel is fully opaque)
當您將首選配置設置爲ARGB_8888時會發生什麼? – EboMike 2010-10-28 19:14:45
結果與ALPHA_8相同。我得到一個帶有不透明alpha通道的ARGB_8888位圖。 – kvance 2010-10-28 19:20:56
你的png是什麼顏色的?我猜0,這是灰度。據我所知,沒有「僅alpha」的png文件。最接近你可以得到的將是一個8位調色板與索引身份映射到阿爾法 - 文件大小。但可能不值得。您的解決方法下面可能是最好的,你會得到。但我討厭成爲那個人:API正試圖在這裏告訴你一些事情!保持alpha和RGB在一起。總是。這將得到更快,更好的支持。通過使用ALPHA_8,您可以離開好路徑。如果可能,儘量將您的設計更改爲RGBA。 – starmole 2013-06-10 07:19:29