Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将图像转换为字符串(用于Symfony2响应)_Php_Image_Symfony - Fatal编程技术网

Php 将图像转换为字符串(用于Symfony2响应)

Php 将图像转换为字符串(用于Symfony2响应),php,image,symfony,Php,Image,Symfony,我正在用Symfony2构建一个用于图像大小调整的脚本 因为我希望能够使用标准的Symfony2响应系统 $headers = array('Content-Type' => 'image/png', 'Content-Disposition' => 'inline; filename="image.png"'); return new Response($img, 200, $headers); // $img comes from i

我正在用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);

有更好的方法吗?

输出缓冲可能是最好的解决方案

顺便说一句,您可以少调用一个函数:

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

我建议使用。在我看来,这是一个非常好的捆绑任何类型的图像处理。尽管它只有一个过滤器(缩略图创建),但您可以编写自己的包。我只是想和你分享我的发现:)@gilden,我来看看,谢谢!