2026年10月17日
2026年10月17日
WordPressのGDライブラリで画像を処理する方法
はじめに
GDライブラリは、PHPで画像の読み込みや保存、加工を行うための非常に強力なツールです。WordPressではこの機能を活用することで、投稿やメディアライブラリー内の画像の調整や最適化が可能となります。
症状・背景
- WordPressサイト上で特定のサイズのサムネイルを作成したい
- アップロードされた画像の品質を改善したい
- カスタムプラグインを開発中に画像を処理する必要がある
- テーマやプラグインのカスタマイズにおいて、画像関連の問題を解決したい
手順・設定方法
ステップ1: GDライブラリがインストールされていることを確認する
# PHPでGDライブラリが有効かどうか確認します。コマンドラインから以下のPHPスクリプトを実行します。
php -r 'if(function_exists("gd_info")) { echo "GD Library is installed."; } else { echo "GD Library is not installed."; }'
ステップ2: カスタム画像処理関数を作成
# WordPressのフックを使用してカスタムサムネイルサイズを追加します。
add_image_size('custom-thumbnail', 300, 200, true);
ステップ3: アップロードされた画像の品質を改善する
# wp-uploadsディレクトリ内の画像の品質を向上させる関数を登録します。
function improve_image_quality($quality) {
return 90; // ジャンプング品質を90に設定(最大100)
}
add_filter('jpeg_quality', 'improve_image_quality');
ステップ4: PHPスクリプトでGDライブラリを使用する
# GDライブラリを使って画像の一部をクロッピングします。
function crop_image($src, $dest, $width, $height) {
list($w, $h) = getimagesize($src);
$x_ratio = $w / $width;
$y_ratio = $h / $height;
if ($w <= $width && $h <= $height) { // 元画像が目的のサイズ以下の場合
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($src);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $w, $h);
imagejpeg($image_p, $dest, 90); // JPEG品質を設定
} else if ($x_ratio > $y_ratio) {
$crop_w = round($w / $x_ratio);
$crop_h = $height;
$crop_x = ($w - $crop_w) / 2;
$crop_y = 0;
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($src);
imagecopyresampled($image_p, $image, 0, 0, $crop_x, $crop_y, $width, $height, $crop_w, $crop_h);
imagejpeg($image_p, $dest, 90); // JPEG品質を設定
} else {
$crop_w = $width;
$crop_h = round($h / $y_ratio);
$crop_x = 0;
$crop_y = ($h - $crop_h) / 2;
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($src);
imagecopyresampled($image_p, $image, 0, 0, $crop_x, $crop_y, $width, $height, $crop_w, $crop_h);
imagejpeg($image_p, $dest, 90); // JPEG品質を設定
}
}
注意事項
- GDライブラリを使用する前に、サーバー環境がPHPとGDライブラリをサポートしていることを確認してください。
- ファイルシステムへの書き込み権限がない場合やディレクトリ構造が適切でない場合はエラーが発生しますので注意が必要です。
- 画像の処理はサーバー負荷を増加させる可能性があるため、大量の画像を一括処理する際にはパフォーマンス監視を行うべきです。
- セキュリティ上の問題がないか確認するために、常に最新のGDライブラリとPHPバージョンを使用することをお勧めします。
まとめ
1. インストール確認: GDライブラリがインストールされていることを確認する
2. カスタムサイズ追加: WordPressでカスタムサムネイルサイズを追加する関数を記述する
3. 品質向上: アップロードされた画像の品質を改善するためのフィルターを使用する
4. クロッピング処理: PHPスクリプトでGDライブラリを使って画像の一部をクロッピングする
関連記事: