Как добиться обратного эффекта imagecreatefromstring в PHP?

Как я могу получить строку base64 из ресурса изображения в PHP? Однако обратите внимание, что я сделал изображение на лету, поэтому URL-адрес не существует.

Вот что я пробовал, но это не работает:

echo 'data:image/png;base64,'.base64_encode($img);

Это дает ошибку:

Warning: base64_encode() expects parameter 1 to be string, resource given

person ShadowHero    schedule 07.11.2013    source источник


Ответы (1)


К сожалению, невозможно указать GD вернуть ваше изображение в виде двоичной строки. GD поддерживает запись только в файл или на экран. Что мы можем сделать, так это использовать буферизацию вывода, чтобы захватить его вывод, а затем поместить его в строку.

ob_start();
imagepng($img);
$image = ob_get_clean();

echo 'data:image/png;base64,'.base64_encode($image);
person Rocket Hazmat    schedule 07.11.2013