Ich glaube, dass Sie SetPixel (oder gleichwertiges Verfahren zur Einstellung der Farbwerte direkt), um die Pixel zu erhalten werden „transparent white“ verwenden müssen.
Sie können die Methode Graphics.Clear
verwenden, um die Farbe oder die Pixel festzulegen. Sie können sie jedoch nicht verwenden, um sie sowohl als transparent als auch als Farbe festzulegen. Ich versuchte, dies um die Pixel in einem Teil der Bitmap gesetzt:
using (Graphics g = Graphics.FromImage(theBitmap)) {
g.Clip = new Region(new Rectangle(10, 10, 80, 80));
g.Clear(Color.FromArgb(0, Color.White));
}
Die Pixel in der Region am Ende als „transparent schwarz“: 0,0,0,0. Auch das Zeichnen eines durchgehenden weißen Rechtecks vor dem Löschen hilft nicht. Wenn das Alpha in einer Farbe Null ist, sind die anderen Farbkomponenten ebenfalls Null.
Mit einem fast transparenten Alpha wie 1 funktioniert gut, die Pixel enden als "fast transparent weiß": 1.255.255.255.
Es ist nicht * das * unüblich, Farbkanäle für Daten zu verwenden, Sagen Sie für eine Geländekarte in einem Spiel, wo Wasser, Straßen, Felsen, Schnee ARGB sind. Manchmal möchten Sie also Bitmaps mit Null-RGB-Werten erstellen können. –
Übrigens ist die Farbe in meinem Fall relevant wegen der späteren Verarbeitung, die transparente Bereiche Farben mit anderen Bereichen Farben "mischt". – mackenir