未定義の関数imagecreatefromjpeg()ソリューションの呼び出し
Call Undefined Function Imagecreatefromjpeg Solution
シーンの説明
一般的な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/ URLからダウンロードでき、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