PHPで画像を扱うライブラリとしてintervention/image
が有名だと思われるのでそちらを使用するが、前提として以下のサーバー環境を満たす必要がある。
PHP:ver5.4以上
必要モジュール:GD Library もしくは Imagick PHP extension
特に共用のレンタルサーバーについては.htaccess以外の変更はできないので、画像を扱う場合は必要なモジュールがインストールされているか知っておきたい。
一応、各サーバー運営会社のHPに仕様情報はあると思うが、自分でチェックする方法は下記のようになる。
GD or Imagick がインストールされているか調べる
取り扱うファイルの種類については個別に設定するので、例えばアップロードした画像をWebサイトで使用するのにwebp形式を用いるのであればそれらが対応しているかもチェックする必要がある。
GDの場合
phpinfoの中身をコマンドラインで調べる。
supportについてはGDに関係ないものも表示されてしまうこともあるが、おおよそサポートされている画像形式については確認することができる。
$ php -i "(command-line 'phpinfo()')" | grep GD
GD Support => enabled
GD Version => bundled (2.1.0 compatible)
$ php -i "(command-line 'phpinfo()')" | grep Support
GD Support => enabled
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
PNG Support => enabled
WBMP Support => enabled
XPM Support => enabled
XBM Support => enabled
WebP Support => enabled
BMP Support => enabled
Imagickの場合
インストールされているImagickの情報が返ってくる。
$ convert -version
Version: ImageMagick 6.9.10-68 Q16 x86_64 2021-10-14 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(3.1)
Delegates (built-in): bzlib cairo fontconfig freetype gslib jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps rsvg tiff wmf x xml zlib