Bestimmen Sie, ob der Alpha-Kanal in einem Bild verwendet wird

Da ich Bilder in mein Programm bringe, möchte ich feststellen, ob:

ie haben einen Alpha-Kanwenn dieser Alpha-Kanal verwendet wird

# 1 ist einfach genug mitImage.IsAlphaPixelFormat. Zum # 2 Neben dem Durchlaufen jedes einzelnen Pixels kann ich auf einfache Weise feststellen, ob mindestens eines der Pixel einen verwendeten Alphakanal aufweist (d. h. auf einen anderen Wert als @ eingestellt ist255)? Alles, was ich zurück brauche, ist ein Boolescher Wert, und dann werde ich entscheiden, ob ich ihn auf 32-Bit oder 24-Bit speichern möchte.

AKTUALISIERE: Ich habe entdeckt, dass ImageFlags.HasTranslucent sollte mich mit dem versorgen, wonach ich suche - leider funktioniert es überhaupt nicht. PNGs mit Pixelformaten, die mindestens einen Alphakanal von 66 (halbtransparent) aufweisen, melden beispielsweise weiterhin False (Verwendung:if((img.Flags & ImageFlags.HasTranslucent) == 4) ...;). Ich habe alle Arten von Bildern getestet, einschließlich .bmp, die einen Alpha-Wert> 0 und <255 haben, und es wird immer noch @ gemeldeFalse. Wer nutzt das schon und weiß, ob es überhaupt in GDI + funktioniert?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage