Entwickler-Ecke
WinForms - Ein Bild als Objekt von Form1 an Form2 übermitteln
kl.feigling - Fr 26.07.13 15:58
Titel: Ein Bild als Objekt von Form1 an Form2 übermitteln
Hallo, ich möchte gerne ein Bild, was ich von meiner Cam bekomme in eine Picturebox auf einer anderen Form ausgeben. Dies klappt auch beim ersten mal. Leider aktualisiert sich jedoch nicht das Bild. Was mach ich falsch ?
Form1:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| try { if (ICube.ICubeSDK_SaveToFile(g_iCurrentCam, "Bild.bmp") != ICube.IC_SUCCESS) MessageBox.Show("Error: ICubeSDK_SaveToFile"); Bitmap b1 = new Bitmap("Bild.bmp"); form2.Id = b1;
form2.aktualisieren(sender, e); } catch { }
public partial class Form2 : Form { private Bitmap id; public Bitmap Id { get { return this.id; } set { this.id = value; } }
public Form2() { InitializeComponent(); pictureBox2.Load(Application.StartupPath+"\\"+"logo.png"); }
public void aktualisieren(object sender, EventArgs e) { if (this.pictureBox2.Image != null) { this.pictureBox2.Image.Dispose(); this.pictureBox2.Image = null; } pictureBox2.Image = this.Id;
this.pictureBox2.Refresh(); } |
Wenn ich jeweils das Bild auf die Festplatte speicher und dann öffne klappt es ... dauert aber leider sehr lange .
Hoffe ihr könnt mir Helfen :-)
Ps. Ist mein erstes Projekt in c# also totaler anfänger ...
Moderiert von
Th69: C#-Tags hinzugefügt
Moderiert von
Th69: Topic aus C# & .NET Tutorials verschoben am Fr 26.07.2013 um 16:34
Moderiert von
Th69: Titel geändert.
Th69 - Fr 26.07.13 16:43
Hallo kl.feigling :welcome:
hat deine Library evtl. noch eine andere Methode (z.B. SaveToStream), dann bräuchtest du nicht den Umweg über eine externe Datei gehen, sondern könntest direkt dein Bitmap aus dem Stream erstellen lassen?
Entferne aber ersteinmal den leeren try...catch, denn Exceptions sollte man nicht still einfach abfangen und dann im Programmablauf weitermachen. Evtl. wird die Datei nämlich gelockt, so daß das zweite Hineinschreiben (und alle folgenden) fehl schlägt und du daher keine Änderung in der PictureBox siehst?
P.S. Dein Beitrag war im falschen Forum (C# & .NET Tutorials), daher habe ich es nach C#-WinForms verschoben.
Und C#-Tags hinzugefügt, damit man den Code besser lesen kann - demnächst bitte selber so einstellen, danke.
kl.feigling - Di 30.07.13 11:50
Hallo, ich habe immer noch eine kleine Frage zu diesem Thema. Ich habe es jetzt geschaft, dass ich das aktuelle Bild als Bitmap an die form2 übergebe, leider aktuallisiert die Picturebox sich nicht :-( Was mache ich falsch? Zum Testen hab ich auch das Bild gespeichert und das klappt super.
Hoffe ihr könnt mir wieder einen kleinen Tipp geben.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| public Form2() { InitializeComponent(); }
public void aktualisieren(Bitmap bitmap) { Bitmap Bild_ausgabe = bitmap; if (this.pictureBox2.Image != null) { this.pictureBox2.Image.Dispose(); this.pictureBox2.Image = null; } pictureBox2.Image = Bild_ausgabe; this.pictureBox2.Refresh(); Bild_ausgabe.Save(Application.StartupPath + "\\" + "ausgabe_test.png"); } |
Gruß Kl.feigling
Moderiert von
Th69: C#-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!