基本的な使用方法

このエクステンションは Imagine のラッパーであり、また、最もよく使われる画像操作メソッドを追加するものです。 このエクステンションを使用する前に、必ず Imagine ライブラリに慣れ親しんで下さい。

下記にこのエクステンションの使い方を例示します。

use yii\imagine\Image;

// 画像に枠を付け、回転し、そして保存する
Image::frame('path/to/image.jpg', 5, '666', 0)
    ->rotate(-8)
    ->save('path/to/destination/image.jpg', ['jpeg_quality' => 50]);

下記の画像操作メソッドを利用することが出来ます。

  • Image::crop() - 画像を切り抜く
  • Image::autorotate() - EXIF 情報に基づいて画像を自動的に回転する
  • Image::thumbnail() - サムネール画像を作る
  • Image::resize() - 画像をリサイズする
  • Image::watermark() - 既存の画像に透かし(ウォーターマーク)を入れる
  • Image::text() - 既存の画像の上にテキスト文字列を描画する
  • Image::frame() - 画像の周囲に枠を追加する

全ての Image メソッドは \Imagine\Image\ImageInterface のインスタンスを返すことに留意して下さい。 'Imagine' ライブラリで利用可能なメソッドのリストについては、そのドキュメントを参照して下さい。

ソース画像の指定

全ての画像操作メソッドについて、ソース画像を次の方法によって指定することが出来ます。

  • 画像ソース・ファイルへのパス。Yii のパス・エイリアスをここで使うことが出来ます。
  • ストリーム・リソース (例えば、fopen() の結果).
  • Imagine\Image\ImageInterface のインスタンス。

例えば、

use yii\imagine\Image;

// パス・エイリアスを使用
Image::crop('@app/src/image.jpg', 100, 100)
    ->save('path/to/destination/image.jpg');

// ストリームを使用
$resource = fopen('/path/to/src/image.jpg', 'r');
Image::crop($resource, 100, 100)
    ->save('/path/to/destination/image.jpg');

// `Imagine\Image\ImageInterface` を使用
$binarySource = file_get_contents('/path/to/src/image.jpg');
$image = Image::getImagine()->load($binarySource);
Image::crop($resource, 100, 100)
    ->save('/path/to/destination/image.jpg');

Note: ソース画像の指定には Yii のパス・エイリアスを使用することが出来ますが、save() メソッドの呼び出しについては、それは許されていません。 というのは、save() メソッドは Yii とその機能を知らない 'Imagine' ライブラリに属するからです。