Vb.Net: 2 fotos über einander, 1 davon transparent

Hallo Forum,

ich habe folgenes vor: 2 Fotos (Bitmaps) sollen geladen werden und auf der Form überlappend angezeigt werden. eines der Bilder soll transparent sein. (Später möchte ich eines der Fotoy mit Buttons bewegen können).

Lösungsansätze und Probleme: Mit der Picturebox würde alles gehen, auch das verschieben, bis auf die Transparenz :o(

Jetzt arbeite ich ohne Picturebox mit DrawImage direkt auf der Form, der zentrale Befehl je Bild hat das Format:
Me.CreateGraphics.DrawImage(Bild, Pos1, Pos2, Breite, Hoehe).

Meine Fragen:

  • Wenn ich das Bild verschiebe (durch Veränden von Pos1, Pos2)wird das Bild korrekt gezeichnet, aber das alte bleibt wie ein Schweif bestehen. Kann man das ändern? Wie bekomme ich das Bild transparent?

Danke für tipps, grüße Jörg

Hallo Jörg

Erst einmal müsstest du immer, wenn du die Position Pos1, Pos2 veränderst beide Bilder neu zeichnen, bzw den Inhalt des Images der PictureBox löschen, damit der Schweif verschwindet.

Um das Bild Transparent zu bekommen gibt es zwei Möglichkeiten. Die erste wäre, dass du das Bild vorbearbeitest, indem du mit Bitmap.LockBits dir das Bitmap sperrst und dann in jedem Pixel den Alphawert veringerst, so wie du ihn brauchst. Die zweite Möglichkeit benutzt die Klasse ColorMatrix. Mit ihr werden die Farben der Bilder während des Zeichnens angepasst. Die ColorMatrix wird dann in einer ImageAttribute-struct der DrawImage-Methode übergeben.

Zu letzterem der Link zur ColorMatrix-Dokumentation: http://msdn.microsoft.com/query/dev10.query?appId=De…

MfG IGnow

Vielen Dank…
… für die ausführliche Antwort. Habe mir Informationen zur Colourmatrix besorgt und werde da weitermachen.

Beste Grüße, Jörg