このエクステンションは 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' ライブラリで利用可能なメソッドのリストについては、そのドキュメントを参照して下さい。
全ての画像操作メソッドについて、ソース画像を次の方法によって指定することが出来ます。
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' ライブラリに属するからです。