PHP класс для быстрой пакетной обработки изображений

Представляю Вашему вниманию класс для пакетной обработки файлов jimage. Класс позволяет делать тумбики изображений, создавать коллаж из десятка картинок, и применять различные gd эффекты к изображениям. А также комбинировать все эти действия.
Класс написан мной для конкретного проекта, и с тех пор успешно применяется во других. Исходный код на гитхабе.
Покажу, как использовать на примере создания тумбиков или если говорить научным языком маленьких копий изображений.

 

элементарно и просто. У метода есть ряд настроек, первой идет путь до изображения. Второй путь до итогового тумбика, 3 и 4 это размеры по ширине и высоте соответственно, 5 — ый параметр это флаг, который может иметь несколько значений

USE_HOWSET или » — и ширина и высота должны быть заданы, размер итогового тумбика задается строго, изображение обычно искажается
USE_WIDTH или ‘w’ — задается только ширина итогового тумбика, высота считается пропорционально по заданному изображению
USE_HEIGHT или ‘h’ — тоже только по высоте
USE_AUTO или ‘a’ — по умолчанию, задаем и высоту и ширину, если входящее изображение вертикальное то размеры тумбика расчитываются так, чтобы все изображение влезло в заданные пределы.

Поясню все варианты на примерах, возьмем за основу изображение красавицы Хайден Панеттьери

hayden

mini_1

Иображение растянуто, рамеры строго соответствуют тем, которые заданны

mini_2

Изображение по ширине строго соответствует 200px, а по высоте вычисляется пропорционально исходному иображению

mini_3

тоже, что и по ширине. Высота соответствует 3-му параметру, а ширина вычисляется.

mini_4

Изображение вписывается в указанные приделы.

Разумеется — это не все возможности данного класса. Вот еще одно, интересное применение: пакетное применение фильров

В результате, ко всем изображениям в папке img, будет применен эффект оттенки серого. Вот полный список поддерживаемых эффектов

Метод фильтр можно применять и для одиночных изображений, к примеру применим сразу 3 эффекта нашей Хайден

В результате получим такую фотографию

use_effects

Удобно для быстрой генерации уникальных изображений, к примеру для досок объявлений после работы парсера.
Можно придумать 1000 и одно применение метода each, я покажу лишь, как я применил его в одном из своих проектов. В папке лежит множество изображений. Нужно вывести все их из папки, для плагина галереии на jquery. Нет ничего проще.

 

Как я уже писал выше, класс умеет делать автоматический коллаж из нескольких изображений. Можно использовать для этого специальные сервисы чтобы сделать коллаж онлайн. Однако, если Вам нужно автоматическое создание коллажей, то все они Вам не подходят. А класс делает это на раз. Для этого есть метод joinAll( $path,$file_output,$size,$org = USE_HEIGHT,$filter_add = false,$filter_use = false )

  1. Первым параметром идет путь до папки с иображениями,
  2. вторым путь до итогового коллажа,
  3. третьим размер по высоте или ширине коллажа, в зависимости от того, какой вариант коллажа мы делаем (вертикальный или горизонтальный),
  4. 4-ый параметр и задает это  USE_HEIGHT — горизонтальный коллаж,  USE_WIDTH — вертикальный.
  5. Последние два параметра задают фильтры,
  6. 5-ой применяется ко всему коллажу и коллаж копируется полностью, и добавляется к исходному коллажу.
  7. 6-ый просто применяется ко всему коллажу
  8. Сделаем автоматический коллаж изображений чудесной Фриды Пинто

frida_kollag

или вертикальный вариант

40x340-tmp-images-php-image-process-vert_frida_kollag

Применим фильтр скетч эффекта

и такой итоговый коллаж

effect_frida_kollag

или тоже самое но просто применяем к коллажу

effect_frida_kollag1

По умолчанию скрипт генерирует изображение только один раз, чтобы обновлять созданные изображение нужно поставить флаг  $ji->image_replace = true;

Вот и все, буду рад если класс окажется полезен кому-нибудь.

.

www.collegewritingservice.org
Вы можете оставить ответ, или trackback с вашего сайта.

Leave a Reply

Надо сделать сайт? Мы выгодно сделаем сайт! ©