Разработка → WideImage - удобная работа с изображениями в PHP
Все кому приходилось работать с изображениями на чистом PHP знают что это не удобно и не интересно. А работать с картинками переодически приходится, это загрузка картинок через форму с последующим изменением размера или обрезкой до определённых пропорций.
В этой заметке я расскажу об классе который делает всю рутинную работу за нас и называется он WideImage. Мне понравился этот инструмент тем что он написан в ООП стиле, хороший, чистый и расширяемый код и плюс ко всему отлично справляется со своими обязаннастями. И главное манипулировать изображениями становится очень легко.
У WideImage много разных возможностей и настроек, я расскажу только об основных и о тех которые использовал сам, с остальными возможностями можно ознакомится на оффициальном сайте, благо там имеется нормальная документация и примеры использования.
Как видно тут всё просто и понятно. Берём картинку с диска изменяем её размер в рамках 400*300. Хочу обратить внимание что изменение размера производится с учётом пропорции, нам не нужно беспокоится о том что картинка растянется и будет не красива, библиотека всё сделает за нас. После ресайза картинка сохраняется с новым именем в формате .jpg.
Ещё одна удобная фишка этого инструмента то, что формат картинки определяется автоматически по расширению принимаемого файла и по расширению имени файла при сохранении, т.е. мы получаем ещё и удобный конвертер изображений.
Этот код вырежет середину размером 200*250 из большой картинки. Удобно при обработки аваторов на сайтах. Так же есть и другие способы обрезки картинок:
Как работают эти функции думаю не требует комментариев.
Вот так вот просто можно наложить одну картинку на другую, широко используется для создания водяных знаков на фотографиях.
Да, это так просто!
Оффициальный сайт
В этой заметке я расскажу об классе который делает всю рутинную работу за нас и называется он WideImage. Мне понравился этот инструмент тем что он написан в ООП стиле, хороший, чистый и расширяемый код и плюс ко всему отлично справляется со своими обязаннастями. И главное манипулировать изображениями становится очень легко.
У WideImage много разных возможностей и настроек, я расскажу только об основных и о тех которые использовал сам, с остальными возможностями можно ознакомится на оффициальном сайте, благо там имеется нормальная документация и примеры использования.
1. Загрузка
Поддерживаются разные способы загрузки картинок.$img = WideImage::load('http://url/image.png');
$img = WideImage::load('/path/to/image.png');
$img = WideImage::load($image_resource);
$img = WideImage::load($string);
$img = WideImage::load('/path/to/image.png');
$img = WideImage::load($image_resource);
$img = WideImage::load($string);
2. Изменение размера
include "path-to/WideImage.php";
$image = WideImage::load("path-to/image.jpg");
$resized = $image->resize(400, 300);
$resized->saveToFile("small.jpg");
$image = WideImage::load("path-to/image.jpg");
$resized = $image->resize(400, 300);
$resized->saveToFile("small.jpg");
Как видно тут всё просто и понятно. Берём картинку с диска изменяем её размер в рамках 400*300. Хочу обратить внимание что изменение размера производится с учётом пропорции, нам не нужно беспокоится о том что картинка растянется и будет не красива, библиотека всё сделает за нас. После ресайза картинка сохраняется с новым именем в формате .jpg.
Ещё одна удобная фишка этого инструмента то, что формат картинки определяется автоматически по расширению принимаемого файла и по расширению имени файла при сохранении, т.е. мы получаем ещё и удобный конвертер изображений.
3. Обрезка
include "path-to/WideImage.php";
$image = WideImage::load("path-to/image.jpg");
$cropped = $image->crop('center', 'center', 200, 250);
$cropped->saveToFile("small.jpg");
$image = WideImage::load("path-to/image.jpg");
$cropped = $image->crop('center', 'center', 200, 250);
$cropped->saveToFile("small.jpg");
Этот код вырежет середину размером 200*250 из большой картинки. Удобно при обработки аваторов на сайтах. Так же есть и другие способы обрезки картинок:
$cropped = $image->crop(0, 0, 100, 50);
$cropped = $image->crop('50%-100', '50%-125', 200, 250);
$cropped = $image->crop('100%-110', '100%-30', 100, 20);
$cropped = $image->crop('right – 10', 'bottom – 10', 100, 20);
$cropped = $image->crop('50%-100', '50%-125', 200, 250);
$cropped = $image->crop('100%-110', '100%-30', 100, 20);
$cropped = $image->crop('right – 10', 'bottom – 10', 100, 20);
Как работают эти функции думаю не требует комментариев.
4. Наложение картинок
$img = WideImage::load('pic.jpg');
$watermark = WideImage::load('logo.jpg');
$new = $img->merge($watermark, 10, 10, 30);
$new->saveToFile("new.jpg");
$watermark = WideImage::load('logo.jpg');
$new = $img->merge($watermark, 10, 10, 30);
$new->saveToFile("new.jpg");
Вот так вот просто можно наложить одну картинку на другую, широко используется для создания водяных знаков на фотографиях.
5. Выдача картинки в браузер
Рассмотрим функционал скрипта который берёт путь к картинки из URL адреса, изменяет её размер и возвращает браузеру одновременно оптимизирую по качеству.WideImage::load($_GET['img'])->resize(500, 300)->output('jpg', 90);
Да, это так просто!
Оффициальный сайт
Метки: Class, PHP, инструменты


Комментарии:
Ответить
CI сейчас уже не использую, перешёл на ZF, а там нет встроеной либы для работы с картинками. Из того что нашёл мне понравилась WideImage.
Ответить
библиотека слабая, phpThumb phpthumb.gxdlabs.com посмотрите, там и adaptiveResize есть и вращения и плагины можно писать
Ответить