我想在symfony中使用gd库,但我有这个错误
警告:imagecreatefromjpeg():gd-jpeg:JPEG库报告无法恢复的错误:
我的控制器中的脚本是
if (extension_loaded('gd') && function_exists('gd_info')) {
echo "PHP GD library is enabled in your system.";
}
else {
echo "PHP GD library is not enabled on your system.";
}
echo phpinfo();
$filename = $this->get('kernel')->getRootDir() . '/../web/logo/logo.png';
$percent = 0.5;
// Content type
// header('Content-Type: image/jpeg');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
return new Response("foo");
在我的Phpinfo中,我可以看到GD库。
我正在使用Mamp 3.2.1
答案 0 :(得分:2)
这是GD库的一个已知问题,与Symfony无关。 GD在JPEG文件格式方面非常严格,因为它只接受非常特殊的JPEG配置。
这个问题有很多资源。例如。 http://php.net/manual/de/function.imagecreatefromjpeg.php#55402
如果收到此错误:"警告:imagecreatefromjpeg():gd-jpeg:JPEG 图书馆报告不可恢复的错误"然后检查JPEG文件。如果 它们以CMYK格式(而不是RGB)保存,然后GD将无法使用 加载它们(用GD 2.0.12测试)
似乎GD库对错误的JPEG文件的容忍度低于 其他节目。建议的解决方案是将GD设置为忽略JPEG 在处理图像之前出现错误,如下所示:
ini_set(" gd.jpeg_ignore_warning",1);