Skip to content

cmsx/Image

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Компонент Image

Всё начинается с загрузки исходного изображения в объект Image. В конструктор нужно передать имя файла или GD-ресурс.

Преобразования производятся с помощью последовательного назначения модификаторов:

  • addResize($width, $height) - Пропорциональное сжатие картинки до заданных размеров;
  • addCrop($width, $height, $x, $y) - Обрезка картинки до заданных размеров;
  • addWatermark($file, $x, $y) - Добавление водяного знака;

При этом, переменные $x и $y позволяют задать положение для действия (обрезка и положение водяного знака). Например, можно обрезать квадрат 150х150:

  • addCrop(150, 150, 10, 5) - начиная с 10 пиксела слева и 5 пиксела сверху по направлению вниз вправо.
  • addCrop(150, 150, -10, -5) - начиная с 10 пиксела справа и 5 пиксела снизу по направлению влево вверх.
  • addCrop(150, 150, 'left', 'top') - слева сверху изображения.
  • addCrop(150, 150, 'center', 'center') - по центру.
  • addCrop(150, 150, 'right', 'bottom') - справа снизу.
  • аналогично это же позиционирование можно применить и к водяным знакам или комбинировать на своё усмотрение.

Последовательное комбинирование модификаторов позволяет достаточно гибко настроить обработку:

Image::Me('test.jpg')
  ->addResize(400, 300)
  ->addCrop(300, 300)
  ->save('test_cropped.png')
  • Image::Me('test.jpg') - Сокращенный вызов конструктора класса. Загружаем файл test.jpg
  • addResize(400, 300) - сжимаем изображение до 400х300
  • addCrop(300, 300) - обрезаем в квадрат (по умолчанию из центра)
  • save('test_cropped.png') - здесь нет опечатки с расширением файла, исходный JPG можно сохранить в PNG просто указав нужное расширение файла (gif, jpg, png).

При желании, новый файл можно сразу вывести в STDOUT через метод show().

About

Компонент для работы с изображениями

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages