Hallo,
Ich wollte fragen, wie man Prüfen kann, ob ein Bitmap transparente stellen enthält.
LG,
m9898
Entweder mit GetPixel(langsam!) oder das benutzen: [Beta]FastGraphicsLib 1.0.0.5
Dann gucken, ob der Alphawert eines Pixels niedriger als 255 ist.
Danke
Aber da die zu überprüfenden Bilder nur 50px x 50px groß sind, geht es auch mit GetPixel.
Hi
Oder du verwendest die LockBits-Methode der Bitmap, die auch in der FastGraphcisLib verwendet wird und überprüfst halt, ob jedes 4.Byte ungleich 255 ist. Vorher die Bitmap halt auf das ARGB-Format überprüfen.
Gruß
~blaze~
Davor würde ich mir das PixelFormat angucken, damit man nicht unnötig das Bild durchsucht...
Ich wollte auch mal ne total überflüssige Signatur:
---Leer---
Hab ich doch gesagt. Und übrigens gibt es mehrere unterschiedliche Formate mit Alphakanal. z.B.
ARGB mit 1 Bit A, jew. 5 Bit R, G, B
ARGB mit jew. 8 Bit A, R, G, B und mit PAlpha-Flag
ARGB mit jew 16 Bit A, R, G, B und mit PAlpha-Flag
die Alpha-Flag bzw. PAlpha-Flag kannst du mit And abfragen:
VB.NET-Quellcode
Dim myBitmap As Bitmap ='...
If (MyBitmap.PixelFormat And Imaging.Alpha) = Imaging.Alpha Then
'...
Selbiges gilt halt für PAlpha.
und die Indexed-Bitmaps dürften das ebenfalls enthalten. Da kannst du ja jeden Eintrag in der Palette überprüfen und entsprechend auswerten (natürlich müssen dann auch alle Einträge in der Bitmap enthalten sein).