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?

War es hilfreich?

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
scroll top