instalar - php zip archive enabled
PHP GD: ¿Cómo obtener imagedata como cadena binaria? (2)
Estoy usando una solución para ensamblar archivos de imagen en un archivo zip y transmitirlos al navegador / aplicación Flex. (ZipStream por Paul Duncan, http://pablotron.org/software/zipstream-php/ ).
Simplemente cargar los archivos de imagen y comprimirlos funciona bien. Aquí está el núcleo para comprimir un archivo:
// Reading the file and converting to string data
$stringdata = file_get_contents($imagefile);
// Compressing the string data
$zdata = gzdeflate($stringdata );
Mi problema es que quiero procesar la imagen utilizando GD antes de comprimirla. Por lo tanto, necesito una solución para convertir los datos de imagen (imagecreatefrompng) al formato de datos de cadena:
// 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 );
¿Alguna pista?
Una forma es decirle a GD que genere la imagen, luego usar el búfer de PHP para capturarlo en una cadena:
$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();