Seite 1 von 1

Fehler bei übergabe von Objekt

Verfasst: Freitag 13. Februar 2015, 15:15
von DaZeller
Hallo zusammen,

die folgenden Code-zeilen platzieren einen Text auf ein Bild.
Eigentlich wollte ich durch "BackgroundDummy" vermeiden, dass mein Original "Versaut" ist, fall mir das Ergebnis von "callbackPreview" nicht gefällt.
Beim erneuten Aufruf sollte also der unveränderte "Background" wieder zur Verfügung stehen.

Code: Alles auswählen

from Tkinter import *
Background = Image.open("Hintergrund_1.png")

def callbackPreview():
	BackgroundDummy = Background

	# Text auf dem hintergrund platzieren
	draw = ImageDraw.Draw(BackgroundDummy)
	draw.text(TextPos, TextBoxDedication.get("1.0",END), font=font)
	del draw
Mich beschleicht jedoch die Vermutung, dass ich mit "BackgroundDummy = Background" keine Kopie von "Background" anlege, sondern stattdessen nur die Speicheradresse von "Background" an "BackgroundDummy" übergebe (ich mir somit selbst in's Knie schieße... :cry: ).

Kann mir jemand sagen, wie ich das Richtigerweise tun müsste?

Vorab vielen Dank und viele Grüße

Michael Zeller

Re: Fehler bei übergabe von Objekt

Verfasst: Freitag 13. Februar 2015, 15:22
von EyDu
Das hast du richtig erkannt, in Python werden bei Zuweisungen nie Kopien erstellt. Wenn du eine Kopie möchtest, dann muss du diese explizit erstellen. Auch hier hilft dir die Hilfe weiter

Code: Alles auswählen

copy(self) unbound PIL.Image.Image method
    Copies this image. Use this method if you wish to paste things
    into an image, but still retain the original.

Re: Fehler bei übergabe von Objekt

Verfasst: Freitag 13. Februar 2015, 15:27
von Sirius3
@DaZeller: und del ist fast immer unnötig, z.B. in Deinem Fall.

Re: Fehler bei übergabe von Objekt

Verfasst: Freitag 13. Februar 2015, 16:14
von DaZeller
Vielen Dank!

Was das del angeht, muss ich gestehen, dass ich das so aus einem Beispiel entnommenhabe... Was es tut weis ich nicht :mrgreen:

Re: Fehler bei übergabe von Objekt

Verfasst: Freitag 13. Februar 2015, 22:39
von Hyperion
Welches Tutorial oder Buch nutzt du denn? Mir dünkt da böses...