J'essaie de trouver un moyen de définir la propriété Image.Flags (espace de noms System.Drawing) pour les images bitmap que je publie à partir d'un script VB à l'aide de .NET Framework 4.5.1. Microsoft's documentation indique que la propriété Image.Flags est une propriété ReadOnly, mais est-il possible de modifier les indicateurs lors de la conversion d'un objet Image en Bitmap?Définition d'Image.Flags pour un objet Bitmap dans VB
-1
A
Répondre
0
Vous ne définissez pas les indicateurs directement; les drapeaux sont juste utilisés pour décrire le bitmap.
Voici un exemple où nous vérifions si un bitmap a un canal alpha (transparence), puis vérifier un bitmap différent sans un canal alpha
PictureBox1 a l'image de forme avec un fond transparent
Dim b As New Bitmap(PictureBox1.Image) ' this image has alpha
MessageBox.Show(String.Format("Has Alpha: {0}", (b.Flags And ImageFlags.HasAlpha) > 0))
Dim c = New Bitmap(b.Width, b.Height, PixelFormat.Format24bppRgb) ' convert to no alpha
MessageBox.Show(String.Format("Has Alpha: {0}", (c.Flags And ImageFlags.HasAlpha) > 0))
Les MessageBoxes génèrerait Has Alpha: true
, Has Alpha: false
Donc, j'ai effectivement mis le drapeau alpha, mais seulement en changeant réellement la propriété sous-jacente correspondante. Si vous ne saviez pas, comme indiqué dans l'exemple, les drapeaux sont un masque de bits et quand And
avec une valeur de System.Drawing.Imaging.PixelFormat
, on peut vérifier si le drapeau est haut (le résultat est> 0).