调用未定义的函数 imagecreatefromjpeg() 并启用 GD

Posted

技术标签:

【中文标题】调用未定义的函数 imagecreatefromjpeg() 并启用 GD【英文标题】:Call to undefined function imagecreatefromjpeg() and GD enabled 【发布时间】:2014-10-14 08:40:19 【问题描述】:

我正在使用 php 5.5.9 开发 ubuntu 14.04 LTS 启用 GD 并且我加倍检查 但每次我尝试使用 imagecreatefromjpeg() 时仍然显示这个消息

致命错误:在第 34 行的 /../library/image.php 中调用未定义函数 imagecreatefromjpeg()

我什至尝试使用这个从命令行检查它

php -r "var_dump(function_exists('imageantialias'));"

它还给我 布尔(假)

有没有办法在不重新编译的情况下解决这个问题?

【问题讨论】:

来自文档:JPEG support is only available if PHP was compiled against GD-1.8 or later. 看起来这个是双重的:***.com/questions/13338339/… 我已经尝试了该帖子的所有可能解决方案,但没有成功 好的,那为什么不试试这个电话:php -r "var_dump(function_exists('imagecreatefromjpeg'));"?或者在应该使用这个方法的文件中尝试这个var_dump(function_exists('imagecreatefromjpeg'));(当然是在它被调用之前)。 您怎么知道gd 已启用?来自 web 的 PHP 和来自 CLI 的 PHP 可能有不同的配置。 【参考方案1】:

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

ps。不要忘记make clean

下图是incomplete版本的gd:

下图是gd的complete版本:

【讨论】:

强调“不要忘记make clean”。【参考方案2】:

在我的例子中,GD 在升级到 PHP 7.3 后丢失了。所以,我只是使用以下命令添加它:

sudo apt-get install php7.3-gd

【讨论】:

【参考方案3】:

找到 php.ini 一般C:\xampp\php(windows系统)然后打开php.ini

    找到扩展=gd 取消注释(从行首删除 ;) 停止 Xampp 并启动​​

希望能像这里一样工作!

【讨论】:

【参考方案4】:
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);
?>

【讨论】:

这有什么作用? OP为什么要这样做? SO 需要 cmets 和详细信息,而不仅仅是代码示例。

以上是关于调用未定义的函数 imagecreatefromjpeg() 并启用 GD的主要内容,如果未能解决你的问题,请参考以下文章

数据流 - 未调用函数 - 错误 - 未定义名称

调用未定义函数 Mpdf\\Mpdf()

Codeigniter:调用未定义的函数(模型)

如果子类未定义构造函数,是不是会调用父构造函数?

phpMyAdmin 错误调用未定义函数

未捕获的错误:调用未定义的函数 have_post()