场景描述
一般的php环境下对于图片处理的GD库,一般只支持png和gif之类的图片处理,对于jpg格式的图片无法处理。通过php相关信息的查看也可以看到结果
GD Support => enabled
GD Version => bundled (2.1.0 compatible)
GIF Read Support => enabled
GIF Create Support => enabled
PNG Support => enabled
libPNG Version => 1.5.13
WBMP Support => enabled
XBM Support => enabled
从上面可以看出,并不支持jpg或者jpeg图片的处理,这是php程序执行imagecreatefromjpeg方法时将会报错
Call to undefined function imagecreatefromjpeg()
解决方案
- 首先我们要先安装jpeg处理的扩展,下载相关的资源可以从 http://www.ijg.org/files/ 网址下载,我们这里下载v8b版本
wget http://www.ijg.org/files/jpegsrc.v8b.tar.gz
- 接下来进行解压编译安装
tar -zxvf jpegsrc.v8b.tar.gz cd jpeg-8b ./configure --prefix=/homel/jpeg --enable-shared --enable-static make && make install
- 根据安装的jpeg库重新编译安装gd扩展库, 进入php源码目录
cd ext/gd ./configure --with-php-config=/usr/local/bin/php-config --with-jpeg-dir=/home/jpeg/ make && make install
- 将生成的gd.so文件在php.ini配置文件中进行配置
- 这时通过查看php的信息可以看到已经支持jpeg的处理了
GD Support => enabled GD Version => bundled (2.1.0 compatible) GIF Read Support => enabled GIF Create Support => enabled JPEG Support => enabled libJPEG Version => 8 PNG Support => enabled libPNG Version => 1.5.13 WBMP Support => enabled XBM Support => enabled
备注
有的环境可能还会出现一些问题,这时我们可以通过安装以下扩展库,再次尝试上述过程
yum install libjpeg-devel freetype-devel libpng-devel