Berry Framework

Фреймворк, в который собраны функции использованные в различных проектах. В том числе: ORM, шаблонизатор и ряд других полезных в хозяйстве вещей.

Скачать
trunk-версия (650 КБ)
Наверх

Image

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

В мире столько зла: тираны, убийцы, насильники, террористы, создатели GD.

Методы

image->__construct()

Создаёт экземпляр изображения.

image->save()

Сохраняет изображение в файл. Вторым параметром можно указать качество от 0 до 100, где 0 наихудшее качество, а 100 - наилучшее. В случае успеха метод возвращает путь к созданному/обновлённому файлу.

Пример

$image = new Image('./test.jpg');

$image->resize(0, 300);

$image->save('./test3.jpg');

// или

$image->save('./%name.thumb.png', 50);

Макросы доступные в маске файла

Макрос Значение Описание
%dir ./folder Директория файла.
%name test Имя файла.
%ext jpg Расширение файла.
%size 33886 Размер файла.
%hsize 33.09 KB Человеко-понятный размер файла.
%width 751 Ширина иизображения.
%height 500 Не поверите, но это высота изображения.
%mime image/jpeg MIME файла.
%type jpeg Тип файла.
%channels RGB Цветовая модель файла (ещё есть CMYK).
%resize.width 450 Ширина уменьшеного изображения (доступно только при использовании image->resize()).
%resize.height 300 Высота уменьшеного изображения (доступно только при использовании image->resize()).

image->resize()

Изменяет размер. Если первых (ширина) либо второй (высота) параметр является нулём, то изображение изменяется сохраняя соотношение. Оба параметра могут быть указаны как проценты.

Оригинальное изображение, с которым будем работать.

Пример

$image = new Image('./test.jpg');

$image->resize(300, 150);

$image->save('./test1.jpg');

Уменьшаем по ширине сохраняя пропорции высоты

$image = new Image('./test.jpg');

$image->resize(300, 0);

$image->save('./test2.jpg');

Уменьшаем по высоте сохраняя пропорции ширины

$image = new Image('./test.jpg');

$image->resize(0, 300);

$image->save('./test3.jpg');

image->merge()

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

Пример

$image = new Image('./test.jpg');

$image->merge('./goodgirl.png');

$image->save('./test4.jpg');

Пихаем картинку вниз (b) вправо (r)

$image = new Image('./test.jpg');

$image->merge('./goodgirl.png', array(
    'position' => 'br'
));

$image->save('./test5.jpg');

Доступные параметры

Парметр Возмножные значения По умолчанию Описание
position tl
tr
bl
br
tl Указывает расположение.
padding n
n, n
n, n, n, n
0 Выглядит и действует как padding в CSS. Устанавливает значение полей вокруг присоеденяемой картинки.
margin n
n, n
n, n, n, n
0 Выглядит и действует как margin в CSS. Устанавливает отступ от краёв присоеденяемой картинки. Можно указывать отрицательные значения.
background #rgb n
#rgb
n
100 Задаёт фон и его прозрачность. Цвет можно указывать как #RrGgBb, так и #RGB.
rotate n 0 Поворачивает изображение.

image->text()

Накладывает текст на изображение. В тексте можно использовать переменные значения доступные в image->save(). Вторым параметром можно задать дополнительные параметры (см. image->merge() плюс параметр font указывающий цвет и/или размер шрифта).

Пример

$image = new Image('./test.jpg');

$image->text('%name.%ext / %widthx%height / %hsize');

$image->save('./test6.jpg');

С дополнительными параметрами

$params = array(
    'position' => 'br',
    'padding' => '10',
    'background' => '#000 25%',
    'font' => '#fff 3'
);

$image = new Image('./test.jpg');

$image->text('%name.%ext / %widthx%height / %hsize', $params);

$image->save('./test7.jpg');

На всю ширину

$params = array(
    'position' => 'br',
    'padding' => '10 10 10 100%',
    'background' => '#000 25%',
    'font' => '#fff 3'
);

$image = new Image('./test.jpg');

$image->text('%name.%ext / %widthx%height / %hsize', $params);

$image->save('./test8.jpg');

Вылезаем за рамки

$params = array(
    'position' => 'br',
    'padding' => '10 10 10 100%',
    'background' => '#000',
    'font' => '#fff 3',
    'margin' => '0 0 -32 0'
);

$image = new Image('./test.jpg');

$image->text('%name.%ext / %widthx%height / %hsize', $params);

$image->save('./test9.jpg');