未定义函数imagecreatefromjpeg()的调用,但GD已启用。

16
我正在使用启用了GD的PHP 5.5.9在Ubuntu 14.04 LTS上工作。我进行了双重检查,但每次尝试使用imagecreatefromjpeg()时仍然显示此消息:
致命错误:在/ ../library/image.php的第34行调用未定义的函数imagecreatefromjpeg()
我甚至尝试使用以下命令行对其进行检查:
php -r "var_dump(function_exists('imageantialias'));"

它返回给我 bool(false)

有没有不需要重新编译的方法来解决这个问题?


我尝试了每一个可能的解决方案,但都没有成功。 - FoXaWy
好的,那么为什么不尝试这个调用:php -r“var_dump(function_exists('imagecreatefromjpeg'));”?或者在应该使用此方法的文件中尝试 var_dump(function_exists('imagecreatefromjpeg'));(当然,在调用之前)。 - shadyyx
你如何知道 gd 已启用?来自 Web 的 PHP 和来自 CLI 的 PHP 可能具有不同的配置。 - rr-
"var_dump(function_exists('imagecreatefromjpeg'));" 返回 true。 - FoXaWy
我知道它已启用因为 php --ri gdgdGD支持 => 已启用 GD版本 => 2.1.1-dev FreeType支持 => 已启用 FreeType连接 => 使用freetype FreeType版本 => 2.5.2 GIF读取支持 => 已启用 GIF创建支持 => 已启用 JPEG支持 => 已启用 libJPEG版本 => 8 PNG支持 => 已启用 libPNG版本 => 1.2.50 WBMP支持 => 已启用 XPM支持 => 已启用 libXpm版本 => 30411 XBM支持 => 已启用 WebP支持 => 已启用 - FoXaWy
显示剩余3条评论
4个回答

42

我认为您安装了一个不完整的 gd 版本。
在编译 gd 扩展时,请使用标志 --with-jpeg-dir=DIR--with-freetype-dir=DIR

ps. 别忘了执行 make clean

下面的图片是 不完整 版本的 gd: enter image description here

下面的图片是 完整 版本的 gd: enter image description here


强调一下,“不要忘记执行make clean”。 - John Smith

8

在我的情况下,升级到PHP 7.3后缺少了GD。因此,我只需使用以下命令添加它:

sudo apt-get install php7.3-gd

3

查找php.ini,通常在 C:\xampp\php(Windows系统)下,然后打开php.ini文件

  1. 查找extension=gd
  2. 取消注释(从行首删除 ; 符号)
  3. 停止Xampp并重新启动

希望能够像这里一样正常工作!

进入图像描述


-3
Try this
<?php
function LoadJpeg($imgname)
{
    /* Attempt to open */
    $im = @imagecreatefromjpeg($imgname);

    /* See if it failed */
    if(!$im)
    {
        /* Create a black image */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Output an error message */
        imagestring($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/jpeg');

$img = LoadJpeg('bogus.image');

imagejpeg($img);
imagedestroy($img);
?>

1
这是做什么的?为什么原帖作者要这样做?SO需要评论和详细说明,而不仅仅是代码示例。 - Phill Healey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接