created: 2025/04/15,
modified: 2025/04/20
PHPで画像を処理するときは、GDライブラリ(Graphics Draw)という拡張機能(関数群)を利用して画像を生成・編集・出力します。
PHP の GD ライブラリでは、読み込み(input)と書き出し(output)の両方に対応している画像フォーマットがあります。ただし、使用可能かどうかは PHP のビルド時に有効化された GD のオプションにも依存します。
よく使われる画像形式ごとの「読み込み対応」「書き出し対応」をまとめます。
| 画像形式 | 関数名 | 読み込み対応 | 備考 |
|---|---|---|---|
| PNG | imagecreatefrompng() | 対応 | 透過対応あり |
| JPEG | imagecreatefromjpeg() | 対応 | EXIF読み取り不可 |
| GIF | imagecreatefromgif() | 対応 | アニメーションGIFは静止画のみ |
| WEBP | imagecreatefromwebp() | PHP7.0以降 | 透過も対応可能 |
| BMP | imagecreatefrombmp() | PHP7.2以降 | 古いPHPでは未対応 |
| WBMP | imagecreatefromwbmp() | 対応 | モノクロ画像形式 |
| XPM | imagecreatefromxpm() | 対応 | あまり一般的ではない |
| 画像形式 | 関数名 | 書き出し対応 | 備考 |
|---|---|---|---|
| PNG | imagepng() | 対応 | 可逆圧縮/透過サポート |
| JPEG | imagejpeg() | 対応 | 非可逆圧縮/画質調整可 |
| GIF | imagegif() | 対応 | 透過サポートあり |
| WEBP | imagewebp() | PHP7.0以降 | 高圧縮率/透過も可 |
| BMP | imagebmp() | PHP7.2以降 | ファイルサイズ大きめ |
| WBMP | imagewbmp() | 対応 | モノクロ画像形式 |
元画像(original.png)を100×100ピクセルにリサイズして、別ファイル(thumb.png)として保存するプログラム
| 引数 | 変数 | 意味 | 例での値 | 解説 |
|---|---|---|---|---|
| 1 | $dst_image | コピー先画像 | $thumb | 新しく作った100×100の空の画像キャンバス。ここに貼り付ける |
| 2 | $src_image | コピー元画像 | $src | 読み込んだ元画像(original.png) |
| 3 | $dst_x | 貼り付け先のX座標 | 0 | $thumb上の左端から貼り付ける |
| 4 | $dst_y | 貼り付け先のY座標 | 0 | $thumb上の上端から貼り付ける |
| 5 | $src_x | 切り取る元画像のX座標 | 0 | $srcの左端から切り取る |
| 6 | $src_y | 切り取る元画像のY座標 | 0 | $srcの上端から切り取る |
| 7 | $dst_w | 貼り付ける幅 | 100 | $thumb上にリサイズして100pxで貼る |
| 8 | $dst_h | 貼り付ける高さ | 100 | $thumb上にリサイズして100pxで貼る |
| 9 | $src_w | 切り取る幅 | $width | $srcの幅(元画像サイズ) |
| 10 | $src_h | 切り取る高さ | $height | $srcの高さ(元画像サイズ) |