Hallo Forum,
ich habe ein Problem. Ich erstelle aus meinem Bild zuerst ein Thumb und dann resize ich das Original. Leider überschreibt aber ImageMagick das Bild, sodass mein resiztes Original an Bildqualität verliert.
Meine Idee: Original kopieren, dann Thumb erstellen, dann Kopie vernichten. Dann Original wieder kopieren, dann resizen, dann Kopie wieder vernichten. Dann Original kopieren und sonstiges machen, falls nötig und dann Kopie vernichten. Ich will also vor jedem Schritt mein Objekt kopieren und mit der Kopie arbeiten während das Original als Objekt erhalten bleibt.
Mein Problem ist, dass ich anscheinend nur die Referenz kopiere und beim Ändern von Instanzvariablen am Original herum schraube.
Beispiel:
protected function copyMyObject() {
$copyObject = $this;
return $copyObject;
}
public function make_thumb($x, $y) {
$copyObject = $this->copyMyObject();
echo("21:05:50: ----> ".$this->origWidth."<br>");
$copyObject->origWidth = "222";
echo("21:06:41: ----> ".$copyObject->origWidth."<br>");
echo("21:05:50: ----> ".$this->origWidth."<br>");
exit;
Ausgabe:
21:05:50: ----> 5120 21:06:41: ----> 222 21:05:50: ----> 222
2 Fragen:
1.) Ist meine Vorgehensweise überhaupt die richtige? 2.) Selbst wenn nicht, wie kopiere/clone ich ein Object so, dass es wirklich doppelt vorhanden und über seine Variablen und Methoden ansprechbar ist?
Jonny