32bit Bitmap mit Alpha zeichnen?

K

Kernle 32DLL

Neues Mitglied
0
Moin,

Ich habe derzeit ein kleines Problem. Ich habe ein 32bit Bild mit eine Alphakanal, das ich per Asset lade (wird als ARGB_8888 geladen).

Wenn ich dieses Bild jetzt als Bitmap auf ein Canvas einer View zeichne (onDraw), dann erhalte ich typische 16bit Konvertierungs Farbfehler (banding).

Ich weiß das Android nur 16bit darstellen kann, also wie konvertiere ich mein Bild im Code so, dass es ohen Farbfehler dargestellt wird? Ich habe versucht es als ARGB_4444 zu laden, aber damit bekam ich nur andere Grafikfehler (Blockbildung), es per BitmapFactory.Options mit Dithering zu laden (kein Effekt), sowie mit Paint die Dithering aktiviert hatte zu zeichnen (auch kein Effekt).

Da ich im moment kein Android Handy zum testen habe, könnte es sich um ein Emulator Problem handeln. Falls nicht, wie löse ich das Problem?

So long,
Kernle
 
Es kann sehr gut sein, das der Bitmap bereits bei dem erstellen von apk in die 16 bit umgewandelt wurde - has du den Farbraum von BItmap nach dem laden überprüft? Wenn es der Fall sein sollte,
soll der Bitmap in die raw/ und nicht in drawable/

Ansonsten auf parleys.com nach dem devoxx-Channel suchen, und aktuelle Presentationen von Romain Gui / Chet Haase anschauen ( von letzten Donnerstag) - die haben es erfunden ;)
 
Wie gesagt, ich lade sie per Asset, da werden sie nicht vorkonvertiert. Habe aber auch nachgeprüft, sie werden tatsächlich (ohne das ich sie anderweitig verändere) als ARGB_8888 geladen.
 
Wie definierst du deinen View? Ich erinere mich undeutlich das es wichtig ist, das
da die Transparenz eingeschaltet wird ( da gab es gute Zusammenstellung, die ich aber nicht mehr finde)
 

Ähnliche Themen

B
Antworten
4
Aufrufe
430
bb321
B
FabianDev
Antworten
5
Aufrufe
530
swa00
swa00
MES
Antworten
10
Aufrufe
787
MES
MES
Zurück
Oben Unten