Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP для продвинутых.docx
Скачиваний:
16
Добавлен:
01.07.2025
Размер:
12.54 Mб
Скачать

21. Модуль Image

Данный модуль позволяет:

  • обрезать;

  • создавать уменьшенную копию изображений;

  • накладывать водяной знак;

  • поворачивать изображения;

  • добавлять отражение к изображению;

Для начала работы с модулем Image его необходимо раскомментировать в файле bootstrap.php.

Использование модуля Image.Листинг 21.1

$im = Image::factory($file_path, $driver = NULL);

echo $im->file; // получилипуть

echo $im->width; //получилиширину

echo $im->height; // получиливысоту

echo $im->type; // получили числовой тип изображения

echo $im->mime;// получили MIME-тип

Первым параметром мы передали путь к файлу изображения, вторым (необязательный параметр) – библиотеку, которую собираемся использовать при работе с изображениями. По умолчанию, используется библиотека GID. Мы будем использовать такую же, поэтому второй параметр будем оставлять пустым.

Изменение размера изображения.Листинг 21.2

$im->resize($width, $height, $master);

Изменение размера:

$im->resize(200, 200);//изменение размера происходит по меньшей стороне

$im->resize(500, NULL , Image::WIDTH); //изменение размера происходит только по ширине

$im->resize(NULL, 500, Image::HEIGHT); // изменение размера происходт только по высоте

$im->resize(200, 500, Image::NONE);//изменение размера происходит без сохранения пропорций

$im->resize(500, NULL);

$im->resize(NULL, 500);

Обрезка изображения

Обрезка изображения.Листинг 21.3

$im->crop($width, $height, $offset_x, $offset_y);

$im->crop(200, 200)// если мы не задаем параметрыxи y, то изображене будет обрезаться относительно центра.

Мы можем повернуть изображение

Поворот изображения.Листинг 21.4

$im->rotate($degrees);

$im->rotate(-90);

Мы можем зеркально отобразить изображение, указав два параметра: отобразить по горизонтали, либо по вертикали.

Зеркальное отображение изображения.Листинг 21.5

$im->flip($degrees);

$im->flip(Image::HORIZONTAL);

$im->flip(Image::VERTICAL);

Изменение резкости

Резкость.Листинг 21.6

$im->sharpen($amount);

$im->sharpen(20);

Добавление отражения. Функция принимает высоту отражения, прозрачность и булевое значение, которое указывает на то, нужно ли сделать данное отражение плавно исчезающим.

Отражение.Листинг 21.7

$im->reflection($height, $opacity, $fade_in);

$im->reflection(50, 60, TRUE);

Водяной знак. Необходио указать следующие параметры: путь к изображению, которое будет накладываться в качестве водяного знака, смещение по x и по y и прозрачность.

Водяной знак.Листинг 21.8

$im->watermark($watermark, $offset_x, $offset_y, $opacity);

$mark = Image::factory('upload/watermark.png');

$im->watermark($mark, 200, 100);

Мы можем изменить цвет фона и прозрачность.

Фон изображения.Листинг 21.9

$im->background($color, $opacity);

$im->background('#000', 50);

После того как мы совершили необходимые изменения, нам нужно вызвать функцию save(), сохранить изображение и передать в эту функцию путь, куда будет сохраняться изображение.

Сохранение изображения.Листинг 21.10

$im->resize(320, NULL)

->crop(200, 100)

->rotate(45)

->save(‘images/photo.png');

Независимо от того, какое расширение имел входящий файл изображения, мы можем в методе save() поменять расширение и сохранить в нужном нам расширении. Например, мы можем загружать файлы jpeg, но сохранять в png.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]