imageantialias调用未定义函数错误,安装了GD


imageantialias call to undefined function error with GD installed

我需要php脚本的帮助。它是一个CMS,已经实现到一个网站。当尝试添加新产品图像或尝试编辑当前图像时,我得到以下错误:

致命错误:调用/home/mounts/home/m/mclh/web/admin/library/functions.php中的未定义函数imageantialias()

这个区域的代码:

   if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg")
    {
       $destFile  = substr_replace($destFile, 'jpg', -3);
       $dest      = imagecreatetruecolor($w, $h);
       imageantialias($dest, TRUE);
    } elseif ($tmpDest['extension'] == "png") {
       $dest = imagecreatetruecolor($w, $h);
       imageantialias($dest, TRUE);
    } else {
      return false;
    }

第233行是第5行。

UPDATE:似乎函数imageantialias()仅在PHP用GD编译时可用,因此足以通过扩展文件包含扩展。

来自PHP手册:

注意:此功能仅可用如果PHP是用捆绑的

请检查你的phpinfo(),看看,如果你发现标志--with-gd=shared(或类似的标志,也许只是--with-gd)在那里。如果你找不到它,你的PHP必须用这个标志重新编译。

详细说明:PHP扩展可以通过包含.dll (Windows)或.so (Unix)文件通过PHP. ini加载,也可以用PHP编译。编译听起来可怕而疯狂,但实际上非常简单。您所需要做的(Unix)是:

    复制phpinfo()中显示的编译字符串
  1. 添加所需的新标志
  2. 运行
    • 。/配置……phpinfo中的所有内容加上新标志
    • 使清洁
    • 使
    • make install
  3. 看你的phpinfo()和微笑:)

第一个答案(不正确):

imageantialias()是PHP GD扩展的一个函数。是否安装并正确配置了GD ?

从你的代码似乎GD被安装,因为imagecreatetruecolor()也是一个GD函数,似乎工作。由此得出的结论是,您使用的是4.3.2之前的PHP版本,不支持imageantialias()

请看看你的phpinfo(),看看我的结论是正确的。在这里,您将看到您正在使用的PHP版本,您还将看到GD是否已安装并正常工作!

似乎Debian/Ubuntu PHP没有捆绑GD库,一些安全原因。你必须重新编译PHP,按照这个有用的一步一步的指南来做Debian/Ubuntu: http://www.maxiwebs.co.uk/gd-bundled/compilation.php

打开终端。通过输入su并在提示时输入您的root密码来成为root用户。

下载一些我们需要安装的包。输入apt-get install build-essential debhelper fakeroot dpkg-dev mysql-server。当MySQL安装要求root密码时,想一个,然后保证它的安全。将当前目录更改为源目录。cd/usr/src。

输入apt-get source php5下载PHP 5源代码。我们还需要PHP 5的依赖项。要下载这些文件,请输入apt-get build- deep php5.

进入下载的PHP目录。cd php5-XXXX。在输入php5-后按下键,完成文件夹名称。

现在我们需要编辑一个配置文件,将其更改为GD的捆绑版本。输入nano debian/rules.

找到——with-gd=shared,/usr——enable-gd-native-ttf '的行,并通过删除/usr将其更改为——with-gd=shared——enable-gd-native-ttf '。(按ctrl+w来查找,如果搜索gd,它就在第二次出现的地方附近)。要保存文件,我们需要按ctrl+x,然后按y,然后输入。

现在我们需要编辑MySQL设置文件。输入nano debian/setup-mysql.sh。注意:如果这个文件不存在,不用担心,您可以跳过步骤10和11。

查找$mysqld> $datadir/run.log 2>&1 &修改为$mysqld——user=root> $datadir/run.log 2>&1 &通过向其中添加——user=root。要保存文件,我们需要按ctrl+x,然后按y,然后输入。

现在我们已经完成了设置,现在需要编译它。输入dpkg-buildpackage -rfakeroot,或者如果你使用的是Ubuntu 11.10,你应该输入dpkg-buildpackage -d,这将花费一些时间。

完成后,您应该在父目录中加载了.deb文件。查找以php5-gd开头的文件

通过双击安装它,或者在终端上输入dpkg -i php5-gdXXXXXXX,在你输入php5-gd后按下它来完成文件名。

现在我们需要通过持有包来阻止更新用常规的非捆绑版本替换闪亮的新GD库。执行如下命令:apt-get install wajig. exe同意安装

安装完成后,输入如下:wajig hold php5-gd.

恭喜你!您现在已经安装了GD库的捆绑版本,现在开始使用它吧!

根据PHP Manual's Changelog for PHP Version 7.2.0:

imageantialias()现在普遍可用。以前只有如果PHP是用GD的捆绑版本编译的,则可以使用图书馆。

所以有一些选项来解决这个问题。

  • 如果你的PHP版本低于7.2.0,请更新到PHP版本高于7.2.0。
  • 如果你不能或不允许更新php,那么用--with-gd标记的./configure脚本编译php。
  • 或者你可以安装PHP -gd捆绑扩展而不需要重新编译PHP

这是您的问题的解决方案只需下载rpm,解压为gd-bundle。从这里替换原来的gd。所以。

这个函数是GD库的一部分。该库可能没有安装在您的PHP环境中。

如何包含GD的详细信息可以在这里找到:http://www.php.net/manual/en/image.installation.php

这意味着你拼写imageantialias()函数不正确,或者你没有在你的代码中定义该函数,或者它所属的第三方代码没有包含在你的当前文档中。

更新:已安装GD。