Bei unserem ersten Snippet geht es um das Zeichnen eines Bildes mit transparentem Hintergrund unter Windows Mobile.
Als Ressource steht ein PNG zur Verfügung. Leider unterstüzt das .Net Comapct Framework keine Transparenz. Deswegen muss das im Code umgesetzt werden.
Wir befinden uns in der überschriebenen OnPaint-Methode eines Controls. Das Bild soll in unserem Beispiel auf einen schwarzen Hintergrund gezeichnet werden.
//Buffer Bitmap erstellen
if (mBufferBM == null)
mBufferBM = new Bitmap(ClientSize.Width, ClientSize.Height, PixelFormat.Format32bppRgb);
Graphics gfOff = Graphics.FromImage(mBufferBM);
gfOff.Clear(mBackClearColor);
Image drawImg = null;
if (drawImg != null)
{
ImageAttributes attr = new ImageAttributes();
//Transparente Farbe ermitteln indem wir die Farbe des
//ersten Pixels (links oben) nehmen
attr.SetColorKey(((Bitmap)drawImg).GetPixel(0, 0), ((Bitmap)drawImg).GetPixel(0, 0));
//Das Bild auf das Buffer-Bitmap zeichnen
gfOff.DrawImage(drawImg, new Rectangle(0, 0, iSize, iSize), 0, 0, drawImg.Width, drawImg.Height, GraphicsUnit.Pixel, attr);
}
e.Graphics.DrawImage(mBufferBM, 0, 0);
Keine Kommentare:
Kommentar veröffentlichen