首页 > 解决方案 > laravel 图像处理错误

问题描述

以下代码在简单的 php 中使用时工作正常,但是当我在 laravel 视图中使用相同的代码时,它会显示错误

代码

header ('Content-Type: image/png');
$im = @imagecreatetruecolor(120, 20)
or die('Cannot Initialize new GD image stream');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);

laravel 报错

在此处输入图像描述

简单的 PHP 输出

在此处输入图像描述

标签: phplaravellaravel-5

解决方案


您的代码运行良好。您只需要在最后添加一个“退出”即可。

代码:

header ('Content-Type: image/png');
$im = @imagecreatetruecolor(120, 20)
or die('Cannot Initialize new GD image stream');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);
exit;

编辑:

主要问题是您试图将响应标头更改为视图。您需要在调用视图的控制器函数上更改它。例如:

return \Response::view('myView')->header('Content-Type', 'image/png');

然后,在您的 PHP 代码中,您需要做的就是删除第一行:

$im = @imagecreatetruecolor(120, 20)
or die('Cannot Initialize new GD image stream');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);

推荐阅读