Symfony中的错误Gd库

时间:2015-10-15 08:00:13

标签: php symfony mamp

我想在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

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测试)

the dreaded "Warning: imagecreatefromjpeg() : '/tmp/filename' is not a valid JPEG file in /phpfile.php on line xxx"

  

似乎GD库对错误的JPEG文件的容忍度低于   其他节目。建议的解决方案是将GD设置为忽略JPEG   在处理图像之前出现错误,如下所示:

     

ini_set(" gd.jpeg_ignore_warning",1);