php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.10.2008, 00:47  
Neuer Benutzer
 
Registriert seit: 01.10.2008
Beiträge: 4
chriloi befindet sich auf einem aufstrebenden Ast
Standard Image handle klonen

Wie der Titel schon sagt, geht es darum ein Image handle zu klonen.

Folgendes hätte ich mir vorgestellt, funktionieren tut es natürlich nicht.
PHP-Code:
...
$this->tmp imagecreatetruecolor($this->tmp_height$this->tmp_height);

imagecopyresampled($this->tmp$this->src00$new_x$new_y$this->src_width$this->src_height$new_width$new_height);

$this->src = clone $this->tmp;

imagedestroy($this->tmp
Ich möchte das temporäre handle zum Sourcehandle zurückkopieren, ohne dabei erneut den canvas per imagecopy zu kopieren.

Probiert hab ich es bisher nur mit PHP5, wäre interessant ob PHP4 (natürlich ohne clone) das handle kopiert oder so wie PHP5 eine Referenz anlegt.
chriloi ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.10.2008, 16:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Ich wüsste auf Anhieb nur die Möglichkeit ein zweites Image-Resource anzulegen mit den gleichen Maßen wie das Originalbild und dann mittels imagecopy() das komplette Bild von a nach b zu kopieren.

PHP-Code:
$resourceImageCopy $resourceImageOriginal
Erzeugt das definitiv eine Referenz? Ich bin mir da gerade nicht sicher...
MrNiceGuy ist offline   Mit Zitat antworten
Alt 01.10.2008, 21:29  
Neuer Benutzer
 
Registriert seit: 01.10.2008
Beiträge: 4
chriloi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MrNiceGuy Beitrag anzeigen
Ich wüsste auf Anhieb nur die Möglichkeit ein zweites Image-Resource anzulegen mit den gleichen Maßen wie das Originalbild und dann mittels imagecopy() das komplette Bild von a nach b zu kopieren.
Genau das möchte ich ja vermeiden.

Zitat:
Zitat von MrNiceGuy Beitrag anzeigen
PHP-Code:
$resourceImageCopy $resourceImageOriginal
Erzeugt das definitiv eine Referenz? Ich bin mir da gerade nicht sicher...
Ich konnte es nicht in PHP4 testen, aber unter PHP5 auf jeden Fall. Ich bräuchte aber ohnehin eine Methode für PHP4 und eine für PHP5.
chriloi ist offline   Mit Zitat antworten
Alt 01.10.2008, 21:31  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Kann man ressourcen überhaupt klonen. Ich glaube ja eher nicht. Das wäre unlogisch.
Ansonsten würde ichs mit & versuchen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 01.10.2008, 21:41  
Neuer Benutzer
 
Registriert seit: 01.10.2008
Beiträge: 4
chriloi befindet sich auf einem aufstrebenden Ast
Standard

Sagen wir anstatt klonen einfach kopieren dazu. Im Prinzip geht es ja darum die Ressource zu kopieren. (Sowas wie copymem)

Der Tipp mit dem Ampersand ist etwas irreführend, dies würde ja erst recht eine Referenz erzeugen. Gibt es denn kein Pendant zum &, um eine Ressource zu kopieren?
chriloi ist offline   Mit Zitat antworten
Alt 01.10.2008, 21:52  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich habe alles nochmal richtig gelesen. M.E. kann das nicht funktionieren. Macht man sich klar, was der Ressource-Typ ist. Ein Kopieren wie Du es suchst, müßte ja alle Operationen erneut ausführen (z.B. fopen für eine Dateiressource). Das geht erstens nicht (bei fopen bspw. Öffnen/Anlegen der selben Datei) und bietet zweitens auch keinen Mehrwert demgegenüber, das mit den entspr. Befehlen selbst zu tun. Was versprichst Du Dir denn von Deinem Plan?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 01.10.2008, 22:55  
Neuer Benutzer
 
Registriert seit: 01.10.2008
Beiträge: 4
chriloi befindet sich auf einem aufstrebenden Ast
Standard

Ich möchte direkt den Speicherbereich dieser Ressource kopieren, weil damit z.B. im Falle eines transparenten indizierten Bildes auch direkt die Palette und andere Eigenschaften mitkopiert werden würden, was ja bei einem imagecopy (welches ja nur die Pixel von einer Ressource zu einer anderen kopiert) nicht der Fall ist.

Vielleicht hört sich das in diesem Kontext etwas eigensinnig an, weil PHP diese Funktionalität anscheinend nicht bietet, in anderen (höheren) Programmiersprachen ist dies aber durchaus üblich.
chriloi ist offline   Mit Zitat antworten
Alt 01.10.2008, 22:59  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von chriloi Beitrag anzeigen
Sagen wir anstatt klonen einfach kopieren dazu. Im Prinzip geht es ja darum die Ressource zu kopieren. (Sowas wie copymem)

Der Tipp mit dem Ampersand ist etwas irreführend, dies würde ja erst recht eine Referenz erzeugen. Gibt es denn kein Pendant zum &, um eine Ressource zu kopieren?
ein & bewirkt, das auf einen zeiger verwiesen wird. dadurch kannst du ram speicher sparen x-verschiedene keys auf denselben zeiger verweisen.

clone würde bewirken das etwas wirklich kopiert wird und somit 2x vorhanden ist.

resource allerdings ist in php IMMER nur ein zeiger. du kannst somit eine variable kopieren, sie verweist aber immer auf denselben zeiger -> pretty sinnlos.

deine einzigste möglichkeit wäre also wirklich mehr ram durch kopieren zu belegen.
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 15.10.2008, 15:37  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Geht vielleicht über den Umweg mit serialize:


$newResource = unserialize(serialize($resource));


Probiert hab ichs aber nicht.
Andreas ist offline   Mit Zitat antworten
Alt 15.10.2008, 15:40  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
serialize() handles all types, except the resource-type.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Transparente Runde Ecken bei Thumbnial realisieren tomtaz PHP Tipps 2008 3 08.07.2008 01:20
Bilder Klasse snatch-ic Beitragsarchiv 1 13.06.2007 11:45
PHP on your server is not able to handle sessions PHP Tipps 2006 2 24.01.2006 19:22
Problem mit Image as link ausloser stat text in java script. Bruce HTML, Usability und Barrierefreiheit 5 17.01.2006 11:31
[Erledigt] Von image booten Off-Topic Diskussionen 11 26.12.2005 22:53
curl-URL nach image Datei transferieren PHP-Fortgeschrittene 1 22.11.2005 12:47
Image Hosting Problem PHP Tipps 2005-2 2 15.10.2005 20:14
link image als background AliceD HTML, Usability und Barrierefreiheit 4 31.08.2005 14:10
Position auf Image bestimmen PHP Tipps 2005-2 5 29.08.2005 16:47
Image download PHP Tipps 2005-2 1 07.08.2005 01:25
GD Image Stream als Bild anzeigen PHP Tipps 2005-2 2 22.07.2005 13:10
DPI Anzahl beim erzeugen von Bildern mit GD2 Lib einstellen? PHP Tipps 2005 13 28.04.2005 14:39
Image wird erst nach "Reload current page" richtig papalangi PHP Tipps 2005 7 02.02.2005 12:01
Problem mit Wasserzeichen auf Bildern pixelcut PHP-Fortgeschrittene 16 14.12.2004 02:36
Image Map Klicks *serverseitig* (mit php) auswerten PHP Tipps 2004 4 17.07.2004 01:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php resource klonen, php image resource type kopieren, php resource clonen, php clone recource gd, imagehandle inhalt php, php gd indizierte palette, php bild handle, copy image handle, php resourcen kopieren, php 5 image resource kopieren, php resource kopieren, gd image klonen, opensuse php5 5.3.0 gd2, javascript img klonen, warum klonen statt kopieren, image oder klonen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum