imageantialias在安装GD的情况下调用未定义的函数错误

时间:2011-04-22 13:54:50

标签: php function gd

我需要有关php脚本的帮助。它是一个已在网站中实施的CMS。当您尝试添加新产品IMAGE或尝试编辑当前图像时,我收到以下错误:

致命错误:在第233行的/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行。

6 个答案:

答案 0 :(得分:17)

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

来自PHP manual

  

注意:此功能仅适用   如果PHP是用捆绑编译的   GD库的版本。

请检查您的phpinfo()并查看,如果您在那里找到了标志--with-gd=shared(或类似的标志,可能只是--with-gd)。如果找不到,那么必须使用此标志重新编译PHP。

更多细节: 可以通过php.ini包含.dll(Windows)或.so(Unix)文件来加载PHP扩展,也可以使用PHP编译它们。编译声音可怕而且疯狂,但实际上很容易。你需要做的就是(Unix):

  1. 复制phpinfo()
  2. 中显示的编译字符串
  3. 添加所需的新标志
  4. 运行
    • ./ configure ...来自phpinfo的所有内容加上新的标志
    • make clean
    • 使
    • make install
  5. 看看你的phpinfo()并微笑:)

  6. 第一个答案(结果不正确):

    imageantialias()PHP GD extension的函数。 GD是否已安装并正确配置?

    从您的代码中可以看出GD已安装,因为imagecreatetruecolor()也是GD功能,似乎有效。这导致您得出的结论是您使用的是4.3.2之前的PHP版本,该版本不支持imageantialias()

    请查看你的phpinfo(),看看我的结论是否正确。在那里,您将看到您正在使用的PHP版本,您还将看到GD是否已安装且正在运行!

答案 1 :(得分:2)

Here is workaround for your issue 只需下载rpm,从这里提取gd-bundled.so并用它替换原始的gd.so。

答案 2 :(得分:2)

似乎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-dep php5。

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

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

找到--with-gd = shared,/ usr --enable-gd-native-ttf \的行,并将其更改为--with-gd = shared --enable-gd-native-ttf \ by删除,/ usr。 (按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。 对安装说“是”。

安装完成后,输入以下内容:wajig hold php5-gd。

恭喜!您现在已经安装了GD库的捆绑版本,现在可以使用它进行创作!

答案 3 :(得分:1)

According to PHP Manual's Changelog for PHP Version 7.2.0

  

imageantialias()现已普遍推出。以前它只是   如果使用捆绑版本的GD编译PHP,则可用   库。

所以有一些方法可以解决这个问题。

答案 4 :(得分:0)

此功能是GD库的一部分。可能未在PHP环境中安装该库。

有关如何包含GD的详细信息,请访问:http://www.php.net/manual/en/image.installation.php

答案 5 :(得分:-1)

这意味着您要么错误地拼写imageantialias()函数,要么您没有在代码中定义该函数,或者它所属的第三方代码未包含在您当前的文档中。

<强>更新 GD已安装。这是一个谜。