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.
Hallo,
dafür gibt es die Bitmap.MakeTransparent-Methode(n).
Diese Methode nach dem Laden der Bitmap einmalig aufrufen.
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?
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;