Подтвердить что ты не робот

PHP GD: Как получить imagedata как двоичную строку?

Я использую решение для сборки графических файлов в zip и потоковой передачи его в приложение browser/Flex. (ZipStream Пол Данкан, http://pablotron.org/software/zipstream-php/).

Просто загрузка файлов изображений и их сжатие отлично работают. Здесь ядро ​​для сжатия файла:

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

// Compressing the string data
$zdata = gzdeflate($stringdata );

Моя проблема в том, что я хочу обработать изображение с помощью GD перед его сжатием. Поэтому мне нужно решение для преобразования данных изображения (imagecreatefrompng) в строковый формат данных:

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

Любые подсказки?

4b9b3361

Ответ 1

Один из способов - показать GD для вывода изображения, а затем использовать буферизацию PHP для ее записи в строку:

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

Ответ 2

// ob_clean(); // optional
ob_start();
imagepng($imagedata);
$image = ob_get_clean();