場景描述
一般的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