Преобразовать изображение в строку (для ответа Symfony2) - PullRequest
8 голосов
/ 09 сентября 2011

Я создаю скрипт для изменения размера изображения в Symfony2.

Как я хотел бы иметь возможность использовать стандартную систему ответов Symfony2 ...

$headers = array('Content-Type'     => 'image/png',
                 'Content-Disposition' => 'inline; filename="image.png"');

return new Response($img, 200, $headers);  // $img comes from imagecreatetruecolor()

... Мне нужна строка для отправки в ответ. К сожалению, такие функции, как imagepng, записывают файлы или выводят их непосредственно в браузер, а не возвращают строки.

Пока единственное решение, о котором я смог придумать, это

1] сохранить изображение во временную папку и затем прочитать его снова

imagepng($img, $path);
return new Response(file_get_contents($path), 200, $headers);

2] использовать буферизацию вывода

ob_start();
imagepng($img);
$str = ob_get_contents();
ob_end_clean();

return new Response($str, 200, $headers);

Есть ли лучший способ?

1 Ответ

7 голосов
/ 09 сентября 2011

Буферизация вывода, вероятно, является лучшим решением.

Кстати, вы можете вызвать на одну функцию меньше:

ob_start();
imagepng($img);
$str = ob_get_clean();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...