Image Moo обарботка изображений CodeIgniter
Встроенная в CodeIgniter библиотека для работы с изображениями не очень удобная. При работе с ней я часто сталкивался с необходимостью написания большого количества кода, и вообще какая то она сыроватая. Тогда я занялся поиском альтернативной библиотеки. Ей стала Image Moo, она написана для использования на PHP 5 или более поздних версиях и обрабатывает изображения только с помощью GD2.
Установка
Скопируйте разархивированный файл в /system/application/libraries для CI > 1.7.2 и /application/libraries для CI 2.
Функции
load($x) - загружает основное изображение, тут $x путь к изображению, поддерживаются форматы JPG, PNG, GIF. Это изображение в дальнейшем используется для всех процессов и хранится в памяти до завершения.
save($x,$overwrite=FALSE) - сохраняет обработанное изображение(если обрабатывалось) в файл $x поддерживаются форматы JPG, PNG, GIF. Если $overwrite не установлен, сохранение может потерпеть неудачу при совпадении имен. Если $overwrite=TRUE файл будет перезаписан при совпадении имен.
save_dynamic($filename="") - Изображение посылается браузеру напрямую, с заголовками изображения. Используйте $filename чтоб вернуть png/jpg/gif, по умолчанию возвращает jpeg.
save_pa($prepend="", $append="", $overwrite=FALSE) - Сохраняет файл используя оригинальное название и путь, но добавляет $prepend в начало имени файла и $append в конец имени файла, если оригинальное имя файла /this/that/file.jpg вы можете использовать save_pe("pre_", "_app", TRUE) для сохранения как /this/that/pre_file_app.jpg. $overwrite указывает перезаписывать ли файл.
resize($x,$y,$pad=FALSE) - Пропорциональное изменение размера оригинального изображения и помощью размеров заданных в $x(ширина) и $y(высота), если $pad установлен и изображение меньше заданных размеров в $x и $y возвращает изображение вписанное в рамки заданных размеров используя выбранный цвет фона(устанавливается в set_background_colour) для незаполненного пространства(надеюсь если понятно объяснил)))
resize_crop($x,$y) - Пропорционально изменяет размер оригинального изображения чтоб вписать в рамки $x и $y, но обрезает его чтоб вписать в размеры и полностью заполнить пространство
stretch($x,$y) - Вписывает оригинальное изображение в указанные рамки $x и $y, будет растягивать, сжимать его но впишет.
crop($x1,$y1,$x2,$y2) - Обрезает оригинальное изображение по координатам от верхней левой - $x1,$y1 до нижней правой $x2,$y2. Размер нового изображения = $x2-x1 x $y2-y1
rotate($angle) - Поворачивает изображение над которым ведется обработка на $angle градусов, обычно это 90,180,270 но можно использовать любое значение. Незаполненные поля будут заполнены выбранным цветом фона(устанавливается в set_background_colour)
load_watermark($filename, $transparent_x=0, $transparent_y=0) - Загружает указанный в $filename файл в качестве водяного знака, если используете PNG32/24 используйте $transparent_x, $transparent_y чтобы указать конкретную позицию цвета который должен быть прозрачным.
make_watermark_text($text, $fontfile, $size=16, $colour="#ffffff", $angle=0) - Создает водяной знак из вашего текста $text и шрифта .ttf $fontfile. Можно указать размер шрифта $size, цвет $colour, угол поворота $angle.
watermark($position, $offset=8, $abs=FALSE) - Использует загруженный водяной знак для того чтоб поместить его на изображение. $position (позиция) указывается по принципу расположения кнопок на цифровой панели, например 7=Верхний левый угол, 3=Нижний правый $offset это отступ, если $abs установлен в TRUE тогда $position и $offset указывают конкретные координаты в пикселях, для расположения водяного знака.
Тут я описал основные функции, которые могут пригодится каждому, и которые я сам использую. Но в библиотека присутствуют еще несколько функций которые не так часто используются их я опишу в кратце.
shadow($size=4, $direction=3, $colour="#444") - добавляет тень
border($width,$colour="#000") - добавляет границ
border_3d($width,$rot=0,$opacity=30) - добавляет объемную границу
filter($function, $arg1=NULL, $arg2=NULL, $arg3=NULL, $arg4=NULL) - добавляет стандартные фильтры изображений GD2
round($radius,$invert=FALSE,$corners(array[top left, top right, bottom right, bottom left of true or False)="") - закругляет изображение
Помощники
display_errors($open = '<p>', $close = '</p>') - Показывает ошибки в стандартном CI стиле. Пример:
if ($this->image_moo->error) echo $this->image_moo->display_errors();
set_jpeg_quality($x) - устанавливает качество записи JPEG файлов для сохранения, по дефолту 75, возможные значения от 1 до 100
set_watermark_transparency($x) - устанавливает прозрачность водяного знака 1-100, 1-очень прозрачно, 100-не прозрачно
check_gd() - проверяет доступна ли на сервере GD библиотека
clear_temp() - вызовите чтоб очистить настройки для изображения чтобы использовать его снова.
clear() - Используйте для очистки загруженных изображений из памяти
5 комментариев
Вы можете оставить комментарий