2010-07-15 15 views
18

Ich habe zwei Bitmaps, genannt largeBmp und smallBmp. Ich möchte smallBmp auf largeBmp zeichnen und dann das Ergebnis auf den Bildschirm zeichnen. Die weißen Pixel von SmallBmp sollten transparent sein. Hier ist der Code, den ich benutze:C#: Zeichnen Sie ein Bitmap auf ein anderes, mit Transparenz

Das Problem ist, dass das Ergebnis transparent überall wo SmallBmp transparent war! Ich will nur zu bigBmp durchschauen, nicht zu dem, was dahinter steckt.

Antwort

22

CompositingMode.SourceCopy ist das Problem hier. Sie möchten CompositingMode.SourceOver Alpha-Blending erhalten.

+0

+1, vereinbart. Der Standardwert ist gut. –

+0

Ah, das war so einfach! –

1

Geben Sie die Transparenzfarbe Ihrer kleinen Bitmap an. z.B.

Bitmap largeImage = new Bitmap(); 
Bitmap smallImage = new Bitmap(); 
--> smallImage.MakeTransparent(Color.White); 
Graphics g = Graphics.FromImage(largeImage); 
g.DrawImage(smallImage, new Point(10,10); 
+0

Nein, es konvertiert bereits weiß in transparent. Das Problem ist die transparente Schnitte durch beide Bilder. –

Verwandte Themen