Основы использования

Расширение является обёрткой для библиотеки 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(), так как этот метод принадлежит библиотеке 'Imagine', которая не знает о Yii и его возможностях.