Hallo zusammen,
ich versuche mich ein wenig in CakePhp und habe mir dafür ein kleines Projekt ausgedacht.
Es soll eine Signatur-Rotation erstellt werden. Dazu werden wird sowohl der Href, als auch die Image-Source in einer Datenbanktabelle festgehalten.
Da ich weder in von der Image-Größe, noch von Typ abhängig sein möchte, wird das Image via Link angegeben. Als Beispiel habe ich dieses hier verwendet. Das Image wird mittels file_get_contents() ausgelesen. In der View soll dann das Image über imagecreatefromstring() wieder erstellt werden um unter anderem auch eine Einbindung in Foren-Signaturen via BB-Code zu ermöglichen. Es wird auch ein Image angezeigt, jedoch ohne Animation...
Kann man irgendwie über die PHP-seitigen Image-Methoden das animierte GIF erstellen?
Mein entsprechender Quellcode sieht aktuell wie folgt aus:
/src/Controller/RotateController (Methode: __showBanner())
/src/Template/Layout/Rotate/view.ctp
/src/Template/Rotate/view.ctp
ich versuche mich ein wenig in CakePhp und habe mir dafür ein kleines Projekt ausgedacht.
Es soll eine Signatur-Rotation erstellt werden. Dazu werden wird sowohl der Href, als auch die Image-Source in einer Datenbanktabelle festgehalten.
Da ich weder in von der Image-Größe, noch von Typ abhängig sein möchte, wird das Image via Link angegeben. Als Beispiel habe ich dieses hier verwendet. Das Image wird mittels file_get_contents() ausgelesen. In der View soll dann das Image über imagecreatefromstring() wieder erstellt werden um unter anderem auch eine Einbindung in Foren-Signaturen via BB-Code zu ermöglichen. Es wird auch ein Image angezeigt, jedoch ohne Animation...
Kann man irgendwie über die PHP-seitigen Image-Methoden das animierte GIF erstellen?
Mein entsprechender Quellcode sieht aktuell wie folgt aus:
/src/Controller/RotateController (Methode: __showBanner())
PHP:
if(!is_null($banner)){
list($width, $height, $type, $attr) = getimagesize($banner->image);
$imageType = $type;
$imageContent = file_get_contents($banner->image);
if(!$imageContent) {
$imageContent = $this->__createNewImage(__('Error'));
}
}
else {
$imageType = IMAGETYPE_PNG;
$imageContent = $this->__createNewImage('No Banner available');
}
$image = array(
'type' => $imageType,
'mime' => image_type_to_mime_type($imageType),
'extension' => image_type_to_extension($imageType, false),
'content' => $imageContent
);
$this->set(compact('image'));
/src/Template/Layout/Rotate/view.ctp
PHP:
<?= $this->fetch('content') ?>
/src/Template/Rotate/view.ctp
PHP:
$this->response->type($image['mime']);
$imageString = imagecreatefromstring($image['content']);
call_user_func('image' . $image['extension'], $imageString);
imagedestroy($image);
Zuletzt bearbeitet: