yükleniyor. Herhangi bir seçenek olmadan yüklerseniz, sonuçta oluşan Bitmap'in RGB_565 yapılandırması vardır, yani gri tonlamalı olarak kabul edilir. Tercih edilen yapılandırmayı ALPHA_8 olarak ayarlarsanız, bunun yerine bunu bir gri tonlamalı ARGB_8888 olarak yükler.Android: Ben Porter-Duff çizim işlemleri için bir alfa maske olarak kullanmak istediğiniz bir tek kanallı PNG dosyası var bir alfa maskesi bit eşlem
nasıl bir alfa maskesi yerine gri tonlama görüntü olarak bu dosyayı tedavi etmek Android'i ikna edebilirsiniz?
Şimdi RGB kanallarının tüm sıfır olan bir RGBA PNG dosyasında alfa kanalı dahil ediyorum: çözüm olmak yerine bir geçici çözüm
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)
Tercih edilen yapılandırmayı ARGB_8888 olarak ayarladığınızda ne olur? – EboMike
ALPHA_8 ile aynı sonuç. Opak bir alfa kanalı ile bir ARGB_8888 bitmap alıyorum. – kvance
Png'niz hangi renk tipidir? Gri tonlu olan 0 tahmin ediyorum. Bildiğim kadarıyla "alfa sadece" png dosyası yok. Bunu elde edebileceğiniz en yakın dosya, dosya boyutu için alfa dizinine ait bir kimlik haritasına sahip 8 bitlik bir palet olurdu. Ama muhtemelen buna değmez. Aşağıdaki geçici çözümünüz muhtemelen alacağınız en iyisidir. Ama o adam olmaktan nefret ediyorum: API burada bir şey anlatmaya çalışıyor! Alfa ve RGB'yi birlikte tut. Her zaman. Daha hızlı ve daha iyi desteklenecek. ALPHA_8 kullanarak iyi yolu bırakın. Mümkünse tasarımınızı RGBA'ya değiştirmeye çalışın. – starmole