Laden...

Transparenter Bild-Hintergrund

Erstellt von Serun vor 9 Jahren Letzter Beitrag vor 9 Jahren 4.051 Views
S
Serun Themenstarter:in
16 Beiträge seit 2015
vor 9 Jahren
Transparenter Bild-Hintergrund

Hallo Leute,

wie ihr auf dem Bild erkennen könnt, will ich diesen weißen Hintergrund weghaben. Habe schon alles probiert, es funktioniert aber nicht.

Habe mit Gimp den weißen Hintergrund schon weggemacht und das Bild so transparent gespeichert. Wenn ich meine Windows Form Anwendung jetzt starte, dann kommt das Flugzeug mit weißem Hintergrund. Wie bekomme ich diesen Hintergrund weg?

Vielleicht kennt ihr Code, den man nutzen kann, um diesen weg zu bekommen.

Danke euch!

LG Serun

PS: Ich weiß, dass man Spiele normalerweise nicht unter Windows Forms macht, sondern Engines, wie XNA, DirectX, ... Aber ist nur für Übungszwecke.

4.931 Beiträge seit 2008
vor 9 Jahren

Hallo,

dafür gibt es die Bitmap.MakeTransparent-Methode(n).
Diese Methode nach dem Laden der Bitmap einmalig aufrufen.

S
Serun Themenstarter:in
16 Beiträge seit 2015
vor 9 Jahren

Hey,
habe es gemacht, aber leider passierte nichts.
Was jetzt?

       
        Bitmap bitmap = new Bitmap("Pfad");     
       
        picBoxImage = new PictureBox();
        picBoxImage.Image = bitmap;
        picBoxImage.SetBounds(100, 100, 125, 50);
        bitmap.MakeTransparent(Color.White);
        this.Controls.Add(picBoxImage);
        

Wäre dankbar auf eine weitere Antwort!

LG Serun

PS: Es muss doch die PictureBox sein, die das weiß anzeigt, weil ich habe mein Image ja durch Gimp schon transparent gemacht. So müsste es doch in der Klasse PictureBox eine Methode geben, die die PictureBox transparent macht, oder?

S
Serun Themenstarter:in
16 Beiträge seit 2015
vor 9 Jahren

Hallo Leute,

falls jemand verzweifelt nach einer Lösung sucht:

Hier die etwas unschöne Lösung, wenn man das Spiel in Windows Forms programmiert:


picBoxImage = new PictureBox();
picBoxImage.Image = new Bitmap("Pfad");
picBoxImage.BackColor = Color.Transparent;
picBoxImage.SetBounds(100, 100, 125, 50);
this.Controls.Add(picBoxImage);


picBoxImage = new PictureBox();
this.BackgroundImage = bitmapImage;
picBoxImage.Image = bitmapImage;
picBoxImage.SetBounds(intPositionX, constIntPositionY, intBreite, intHoehe);
this.Controls.Add(picBoxImage);

Das

picBoxImage.BackColor = Color.Transparent;

und die zwei Zeilen

this.BackgroundImage = bitmapImage;
picBoxImage.Image = bitmapImage;

sind besonders zu beachten.
Ich sage also, dass ich die Form, die ich mit dem Keyword this abrufe, dass diese als Hintergrund dienen soll. In der PictureBox bitmapImage lade ich das Image (Bitmap) rein und weise es der Windows Form zu. (= this.BackgroundImage = bitmapImage;)

Also einmal werden meine Bilder in den BackgroundImage und einmal in die PictureBox geladen:

this.BackgroundImage = bitmapImage;
picBoxImage.Image = bitmapImage;

Ich kann in den BackgroundImage der Form eine PictureBox drauflegen und diese durch

picBoxImage.BackColor = Color.Transparent;

transparent machen und durch picBoxImage (PictureBox), bei der ja auch ein Bild hineingeladen wurde, war es möglich, meine schon bereits erstellten PictureBoxes zu nutzen und mit dem BackgroundImage zu kombinieren.

Ahh... ich weiß nicht, wie man das am besten beschreibt. Wenn ihr nicht wisst, wovon ich rede, dann folgendes Video anschauen: https://www.youtube.com/watch?v=7Zueizo45O8

Ich hoffe, ich kann dann irgendeinen helfen...

LG Serun

PS: Ich denke, dass es für die anderen optimaler ist, wenn sie dann nur das hier hernehmen:
this.BackgroundImage = bitmapImage;