VB 2008: Bild Variablen zuweisen

Hallo Forum!

Folgende Problemstellung: Ich möchte ein Bild laden (Dim Bild1 as Bitmap, Bild1 = Image.fromFile x) und dieses Bild unverändert lassen, während eine Kopie bearbeitet wird (anzeige in einer PictureBox).

Deshalb habe ich Bild2 As Bitmap definiert und Bild2 = Bild1 gesagt.
Es scheint aber kein unabhängiges Bild angelegt zu werden, sondern eine Rferenz, da immer Bild1 mitverändert wird :o(

Daher wollte ich mit Bild2 As New Bitmap eine neue Instanz erzeugen.
Da ich beim zuweisen Bild2 = Bild1 wieder keine unabhängigen Instanzen erhalte, habe ich mit Bild2 = Image.fromFile x) das Bild nochmal geladen und dann klappt es. Aber das Bild ist ausserhalb (für die Speicher-Prozedur) nicht bekannt und kann angeblich innerhalb der Sub nicht global definiert werden. Und im Main-Teil kann ich Bild3 nicht schon definieren, da ich die Hoehe und Breite da noch nicht kenne.

Irgendwelche Lösungsideen??? Danke schon mal fürs Durchlesen!
Beste Grüße Jörg

Wo ist das Problem? Du kannst doch beide Variablen als Member der Klasse definieren:

Class SomeClass
 Dim Pic1 As Bitmap
 Dim Pic2 As Bitmap
 
 Sub LoadPicture()
 Pic1 = Bitmap.FromFile("...")
 Pic2 = Bitmap.FromFile("...")
 End Sub
 
 Sub PaintInPicture()
 Graphics g = Graphics.FromImage(Pic2)
 'g.DrawSomething()
 g.Dispose()
 End Sub
 
 Sub SavePicture()
 Pic2.Save()
 End Sub
End Class

Grüße, JasonDelife.

Hallo Forum!

Hi!

Folgende Problemstellung: Ich möchte ein Bild laden (Dim Bild1
as Bitmap, Bild1 = Image.fromFile x) und dieses Bild
unverändert lassen, während eine Kopie bearbeitet wird
(anzeige in einer PictureBox).

Deshalb habe ich Bild2 As Bitmap definiert und Bild2 = Bild1
gesagt.
Es scheint aber kein unabhängiges Bild angelegt zu werden,
sondern eine Rferenz, da immer Bild1 mitverändert wird :o(

Genau. Das ist die Definition des ‚=‘ Operators. Bei Referenztypen (wie Bitmap) wird die Referenz auf das Objekt zugewiesen. Bei Wertetypen (wie bspw. Integer) wird der Wert zugewiesen.

Daher wollte ich mit Bild2 As New Bitmap eine neue Instanz
erzeugen.
Da ich beim zuweisen Bild2 = Bild1 wieder keine unabhängigen
Instanzen erhalte, habe ich mit Bild2 = Image.fromFile x) das
Bild nochmal geladen und dann klappt es. Aber das Bild ist
ausserhalb (für die Speicher-Prozedur) nicht bekannt und kann
angeblich innerhalb der Sub nicht global definiert werden. Und

„innerhalb der Sub global definiert“ ist doch ein Widerspruch in sich

im Main-Teil kann ich Bild3 nicht schon definieren, da ich die
Hoehe und Breite da noch nicht kenne.

Definieren kannst Du es schon. Du gibst beim Definieren ja nicht an, dass Du ein Bitmap mit Größe x/y und Inhalt z haben willst, sondern dass Du mit einem (zu diesem Zeitpunkt nicht näher bestimmten) Bitmap hantieren willst.

Irgendwelche Lösungsideen??? Danke schon mal fürs Durchlesen!

Durchlesen, was es mit „Membervariablen“ und „Sichtbarkeit von Variablen“ auf sich hat.

Beste Grüße Jörg

Gruß,
Martin