PHP imagejpeg - конвертировать вывод в base64

Я создаю простой текст на изображении, как это...

// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');

// Output the image
imagejpeg($im);

// Free up memory
imagedestroy($im);

Мне нужен вывод в виде строки base64, я пробовал base64_encode($im), но он не работает правильно для меня.

У кого-нибудь есть пример, который я вижу?

1 ответ

Решение

Попробуйте использовать ob_get_clean функция, чтобы получить изображение из выходного буфера и затем кодировать его в base64:

// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

ob_start();

// Output the image
imagejpeg($im);

$img = ob_get_clean();
ob_end_clean();

// Free up memory
imagedestroy($im);

echo base64_encode($img);
Другие вопросы по тегам