PHP GD: Come get imagedata come string binaria?

Sto usando una soluzione per assemblare i file di image in un file zip e trasferirli su browser / applicazione Flex. (ZipStream di Paul Duncan, http://pablotron.org/software/zipstream-php/ ).

Basta caricare i file di image e comprimerli funziona bene. Ecco il nucleo per la compressione di un file:

// Reading the file and converting to string data $stringdata = file_get_contents($imagefile); // Compressing the string data $zdata = gzdeflate($stringdata ); 

Il mio problema è che voglio elaborare l'image usando GD prima di comprimerla. Pertanto ho bisogno di una soluzione per convertire i dati dell'image (imagecreatefrompng) in formato di dati string:

 // 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 ); 

Qualche indizio?

Un modo è dire a GD di produrre l'image, quindi utilizzare il buffering PHP per catturarlo in una string:

 $imagedata = imagecreatefrompng($imagefile); ob_start(); imagepng($imagedata); $stringdata = ob_get_contents(); // read from buffer ob_end_clean(); // delete buffer $zdata = gzdeflate($stringdata); 
 // ob_clean(); // optional ob_start(); imagepng($imagedata); $image = ob_get_clean();