imagecreatefromjpeg和类似的函数在PHP中不起作用

Use*_*upt 66 php gd

我搜索过这个问题,过去问题中提供的解决方案对我来说完全不可理解.每当我运行这样的函数时imagecreatefromjpeg,我得到这个:

致命错误:调用未定义的函数imagecreatefromjpeg()...

我正在开发一个新的PHP安装; 我的上次安装从未遇到过这个问题.我不知道发生了什么.

Pie*_*NAY 62

在Ubuntu/Mint(基于Debian)

$ sudo apt-get install php5-gd
Run Code Online (Sandbox Code Playgroud)

  • 对于较新的版本,请使用php-gd或php7.0-gd (4认同)
  • 和/etc/init.d/apache2重启 (3认同)
  • @ChrisV仅当您使用Apache时。 (2认同)

Com*_*der 14

您必须启用库GD2.

找到你的(适当的)php.ini文件

找到行:; extension = php_gd2.dll并删除前面的分号.

该行应如下所示:

extension=php_gd2.dll
Run Code Online (Sandbox Code Playgroud)

然后重启apache你应该好好去.

  • 由于 php.ini 是一个大文件,因此请注意任何查看此内容的人。此行位于“动态扩展”类别下(大约在文档的中间) (2认同)
  • 对于使用 PHP 8 或更高版本的任何人来说,请注意,它将改为“extension=gd”。 (2认同)

小智 13

如果您像我一样使用PHP Docker 映像之一作为基础,则需要使用不同的说明添加 gd 扩展,然后是上面讨论的内容。

对于php:7.4.1-apache您需要添加的图像Dockerfile

RUN apt-get update && \
    apt-get install -y zlib1g-dev libpng-dev libjpeg-dev

RUN docker-php-ext-configure gd --with-jpeg && \
    docker-php-ext-install gd
Run Code Online (Sandbox Code Playgroud)

GD php 扩展的编译需要这些开发包。对我来说,这导致在 PHP 中使用 PNG 和 JPEG 支持激活 GD。


小智 12

sudo apt-get install phpx.x-gd 
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

xx是versiónphp.


Mug*_*mba 12

Fatal error: Call to undefined function imagecreatefromjpeg()即使安装了GD,您仍然可以获得.

解决方案是安装/启用jped lib:

Ubuntu上:

    apt-get install libjpeg-dev
    apt-get install libfreetype6-dev
Run Code Online (Sandbox Code Playgroud)

CentOS上:

    yum install libjpeg-devel
    yum install freetype-devel
Run Code Online (Sandbox Code Playgroud)

如果从源添加--with-jpeg-dir --with-freetype-dir或编译--with-jpeg-dir=/usr --with-freetype-dir=/usr.

有关详细信息,请访问https://www.tectut.com/2015/10/solved-call-to-undefined-function-imagecreatefromjpeg/


Pio*_*ski 9

安装php5-gd apache需要重启.


iKo*_*ode 9

对于Ubuntu上的php 7:

sudo apt-get install php7.0-gd


fuz*_*uzz 8

安装后我花了很多时间试图在 Windows 上解决这个问题PHP Version 8.0.11

我创建了这个phpinfo.php文件来检查 GD 是否已加载:

<?php
if (extension_loaded('gd')) {
  print 'gd loaded';
} else {
  print 'gd NOT loaded';
}

phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)

如果它返回,gd NOT loaded请确保php.ini您的文件中未选中以下内容:

; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
;   extension folders as well as the separate PECL DLL download (PHP 5+).
;   Be sure to appropriately set the extension_dir directive.
;
extension=gd
Run Code Online (Sandbox Code Playgroud)

再往下,它们将是extension_dirWindows 上的一个部分,您需要取消选中以下各项:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
;extension_dir = "./"
; On windows:
extension_dir = "ext"
Run Code Online (Sandbox Code Playgroud)

现在,您应该可以看到gd loaded运行该phpinfo.php文件时的情况,并且任何函数调用(例如imagecreatefromjpeg())现在都应该按预期工作。


小智 5

在CentOS,RedHat等使用下面的命令.别忘了重启Apache.因为必须加载PHP模块.

yum -y install php-gd
service httpd restart
Run Code Online (Sandbox Code Playgroud)