PHP GD: Wie als Binär-String erhalten imagedata?
Frage
Ich verwende eine Lösung von Bilddateien zu einer Zip zum Zusammenbauen und Streaming es Browser / Flex-Anwendung. (ZipStream von Paul Duncan, http://pablotron.org/software/zipstream-php/ ).
Laden Sie die Image-Dateien und komprimiert sie funktioniert. Hier ist der Kern zum Komprimieren einer Datei:
// Reading the file and converting to string data
$stringdata = file_get_contents($imagefile);
// Compressing the string data
$zdata = gzdeflate($stringdata );
Mein Problem ist, dass ich das Bild mit GD vor Komprimieren es verarbeiten möchten. Deshalb brauche ich eine Lösung, die die Bilddaten zum Umwandeln (imagecreatefrompng) auf String-Datenformat:
// Reading the file as GD image data
$imagedata = imagecreatefrompng($imagefile);
// Do some GD processing: Adding watermarks etc. No problem here...
// HOW TO DO THIS???
// convert the $imagedata to $stringdata - PROBLEM!
// Compressing the string data
$zdata = gzdeflate($stringdata );
Irgendwelche Hinweise?
Lösung
Eine Möglichkeit ist, GD für die Ausgabe des Bildes zu sagen, dann PHP Pufferung verwenden, um es in einen String zu erfassen:
$imagedata = imagecreatefrompng($imagefile);
ob_start();
imagepng($imagedata);
$stringdata = ob_get_contents(); // read from buffer
ob_end_clean(); // delete buffer
$zdata = gzdeflate($stringdata);
Andere Tipps
// ob_clean(); // optional
ob_start();
imagepng($imagedata);
$image = ob_get_clean();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow