現在の位置: ホーム> 最新記事一覧> PHP Imagick チュートリアル: 画像のトリミング、拡大縮小、回転、透かしを簡単に実現

PHP Imagick チュートリアル: 画像のトリミング、拡大縮小、回転、透かしを簡単に実現

M66 2025-11-04

導入

Web 開発では、多くの場合、画像を処理して最適化する必要があります。 Imagick は、トリミング、拡大縮小、回転、画像へのテキスト透かしの追加などの操作を実行できる強力な PHP 拡張ライブラリです。この記事では、Imagick ライブラリを使用して PHP で画像を処理する方法を詳しく紹介し、完全なサンプル コードを提供します。

Imagick ライブラリをインストールする

Imagickライブラリがインストールされているか確認する

ターミナルで次のコマンドを実行して、Imagick がインストールされているかどうかを確認します。

 php -m | grep imagick

出力がない場合は、Imagick ライブラリをインストールする必要があることを意味します。

Imagick ライブラリをインストールする

Linux 環境では、次のコマンドを使用してインストールできます。

 sudo apt-get update
sudo apt-get install php-imagick

インストールが完了したら、PHP サービスを再起動します。

 sudo service apache2 restart

インストールが成功したことを再度確認します。

 php -m | grep imagick

imagick の出力は、インストールが成功したことを示します。

基本的な使い方

Imagick オブジェクトを作成する

new Imagick() を使用してオブジェクトを作成します。

 $image = new Imagick('path/to/image.jpg');

このコードは、image.jpg を Imagick オブジェクトとして読み込みます。

画像のトリミング

CropImage()を使用して画像をトリミングします。パラメータは幅、高さ、開始 X 座標と Y 座標です。

 $image->cropImage(200, 200, 0, 0);

画像のズーム

画像を拡大縮小するには、 scaleImage()を使用します。

 $image->scaleImage(500, 0);

高さ 0 は自動スケーリングを意味します。

画像の回転

画像を回転するには、 rotateImage()を使用します。

 $image->rotateImage(new ImagickPixel(), -45);

負の角度は反時計回りの回転を表します。

テキストの透かしを追加する

annotateImage()メソッドを使用してテキストを追加します。

 $text = new ImagickDraw();
$text->setFillColor('#000000');
$text->setFont('path/to/font.ttf');
$text->setFontSize(30);
$image->annotateImage($text, 100, 100, 0, 'Hello World');

画像を保存

writeImage() を使用して、変更したイメージを保存します。

 $image->writeImage('path/to/newimage.jpg');

完全な例

<?php
// 作成するImagick物体
$image = new Imagick('path/to/image.jpg');

// 画像のトリミング
$image->cropImage(200, 200, 0, 0);

// 画像のズーム
$image->scaleImage(500, 0);

// 画像の回転
$image->rotateImage(new ImagickPixel(), -45);

// テキストの透かしを追加する
$text = new ImagickDraw();
$text->setFillColor('#000000');
$text->setFont('path/to/font.ttf');
$text->setFontSize(30);
$image->annotateImage($text, 100, 100, 0, 'Hello World');

// 画像を保存
$image->writeImage('path/to/newimage.jpg');

// 破壊するImagick物体
$image->destroy();
?>

要約する

この記事では、Imagick ライブラリを使用して PHP で画像を処理する方法 (トリミング、拡大縮小、回転、テキスト透かしの追加など) を紹介し、完全な例を示します。これらの操作をマスターすることで、Web開発における画像処理を柔軟に行うことができ、開発効率を向上させることができます。