Image

Класс Image предлагает набор функций для обработки изображений.

Пространство имен: \

Расположение файла:lib/image.php

Инициализация

$img = new Image ( [ string $file = NULL [, bool $flag = FALSE [, string $path = NULL ]]] )
 

Вы можете создать новый объект Image из существующего файла изображения следующим образом:

$img = new Image('path/to/your/image.jpg'); // relative to UI search path

Чтобы создать новое пустое изображение, то есть для создания капчи, просто пропустите первый аргумент($file):

$img = new Image();

У конструктора также есть второй аргумент - $flag. Установка этого значения в TRUE включает историю файла , которая может сохранять дополнительные состояния для текущего файла, позволяя, например, вернуться к указанному состоянию после применения фильтра.

Если ваше изображения не находится в одном из путей поиска UI, вы должны использовать аргумент $path, чтобы указать путь к его каталогу. В частности, установите, $path=' 'если указанный путь к файлу является абсолютным.

Обработка

invert

Инвертировать изображение

$img->invert();

brightness

Отрегулируйте яркость

$img->brightness( int $level );
$level диапазон: от -255 до 255

contrast

Отрегулируйте контраст

$img->contrast( int $level );
$level диапазон: от -100 до 100
 

grayscale

Преобразовать в оттенки серого

$img->grayscale();

smooth

Отрегулируйте гладкость

$img->smooth( int $level);

диапазон $level: от -8 до 8, но поскольку он использовался для матричной операции, применимы и большие значения, но это может привести к нежелательным результатам.

emboss

Тиснение изображения

$img->emboss();

sepia

Применить эффект сепии

$img->sepia();

pixelate

Пикселизация изображения

$img->pixelate( int $size );

$size это размер блока пикселя, обычно: 0 - 100

blur

Размытие изображения с помощью фильтра Гаусса

$img->blur( bool $selective );

Установите $selective в TRUE чтоб использовать выборочное размытие, в противном случае используется размытие по Гауссу.

sketch

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

$img->sketch();

hflip

Отразить по горизонтальной оси

$img->hflip();

vflip

Отразить по вертикальной оси

$img->vflip();

crop

Обрезать изображение

$img->crop( int $x1, int $y1, int $x2, int $y2);

resize

Изменить размер изображения (сохраняя соотношение сторон)

$img->resize( int $width [, int $height = NULL [, bool $crop = TRUE [, bool $enlarge = TRUE ]]] );

Если $crop уставновлен в TRUE, размер изображения будет изменен, чтобы его наименьшая сторона поместилась в заданный размер. Переполненные поля будут обрезаны относительно центра, поэтому полученное изображение полностью покроет желаемые значения ширины и высоты.

Если $crop установлен в FASLE, он будет изменен так, чтобы его самая длинная сторона поместилась в заданный размер.

Если $enlarge уставновлен в FALSE, изображение не будет увеличено, чтобы поместиться в заданный размер.

Если одно $width или $height равно нулю, вычисляется другая величина, чтобы сохранить соотношение сторон.

rotate

Повернуть изображение

$img->rotate( int $angle );

overlay

Применить наложение изображения

$img->overlay( Image $img [, int|array $align = NULL [, int $alpha = 100 ]] );

Он используется для слияния с изображениями, то есть для watermarks. Вам нужно установить другой объект Image и вы можете выровнять его с помощью аргумента $align побитовым способом или предоставить массив (x, y).

Пример:

$img = new \Image;
$img = new \Image('images/south-park.jpg');
 
$overlay = new \Image('images/watermark.png');
$overlay->resize(100,38)->rotate(90);
 
$img->overlay( $overlay, \Image::POS_Right | \Image::POS_Middle );
// or
$img->overlay( $overlay, array(200,100), 60);

Возможные значения для $align можно комбинировать с помощью следующих опций:

x-align:

  • POS_Left
  • POS_Center
  • POS_Right

y-align:

  • POS_Top
  • POS_Middle
  • POS_Bottom

или просто используйте массив, содержащий значения x и y.

Используйте аргумент $alpha для управления прозрачностью наложения (0–100).

Rendering

identicon

Создать идентификатор

$img->identicon( string $str [, int $size = 64 [, int $blocks = 4 ]] );

Этот метод отображает уникальный идентификатор на основе заданного $str. $sizeАргумент определяет ширину и высоту получаемого изображения. $blocks(диапазон 2–7) описывает степень детализации блоков шаблона внутри идентификатора.

captcha

Создать изображение CAPTCHA

$img->captcha( string $font [, int $size = 24 [, int $len = 5 [, string|bool $key = NULL [, string $path='' [, $foregroundcolor=0xFFF [, $backgroundcolor=0x000 ]]]]]] );

Это отображает изображение капчи. Пожалуйста, ознакомьтесь с этим разделом руководства пользователя о рендеринге изображений captcha , чтобы увидеть небольшой пример. Если ваш файл шрифта не находится в UIкаталоге, вы можете указать его местоположение с помощью $pathаргумента.

Информация

width

Вернуть ширину изображения

$img->width();

height

Вернуть высоту изображения

$img->height();

rgb

Преобразование шестнадцатеричной триады RGB в массив

$img->rgb( int | string $color );

Вы можете передать целое число или строку. Поддерживаются даже сокращенные обозначения CSS:

$img->rgb( 0xFF0033 ); // returns array( 255, 0, 51 );
$img->rgb( '#FF0033' ); // idem
$img->rgb( 'ff0033' ); // idem
$img->rgb( '#F03' ); // idem
$img->rgb( 'f03' ); // idem

Output

render

Вывести поток необработанного изображения HTTP-клиенту

$img->render( [ string $imageformat = 'png' ] );

Этот метод отправляет поток изображения HTTP-клиенту. Изображение может быть отображено в png, jpeg, gif или wbmp формате. Если не указан, будет использоваться формат изображения PNG. Например, этот пример выведет изображение PNG:

$img->render(); // Send a [Content-Type: image/png] stream to the HTTP client

Допускаются дополнительные аргументы в зависимости от запрошенного формата изображения:

Формат PNG (по умолчанию)

$img->render( 'png' [, int $quality [, int $filters ]] );

$quality указывает на уровень сжатия от 0 до 9.

$filters позволяет уменьшить размер файла PNG. Это поле битовой маски , который может быть установлен в любой комбинации следующих констант: PNG_FILTER_NONE, PNG_FILTER_SUB, PNG_FILTER_UP, PNG_FILTER_AVG, PNG_FILTER_PAETH. PNG_NO_FILTER или PNG_ALL_FILTERS также может использоваться для отключения или активации всех фильтров.

Формат JPEG

$img->render( 'jpeg' [, int $quality = 75 ] );

$quality варьируется от 0 (худшее качество, файл меньшего размера) до 100 (лучшее качество, самый большой файл).

Формат GIF

$img->render( 'gif' );

Формат WBMP

$img->render( 'wbmp' [, int $foreground ] );

Вы можете установить цвет переднего плана $foreground, установив идентификатор, полученный из imagecolorallocate(). Цвет переднего плана по умолчанию - черный.

NB: внутри этот метод является оболочкой для следующих собственных методов PHP:

  • imagepng
  • imagejpeg
  • imagegif
  • imagewbmp

dump

Вернуть изображение в виде строки

$img->dump();

Этот метод принимает те же аргументы, что и render() выше.

Вы можете записать результат этого метода в файл:

$f3->write( '/path/to/file.png', $img->dump('png',9) );

История

Следующие методы вступают в силу только если для в аргумент $flag ,в конструкторе, установлено значение TRUE.

save

Сохранить текущее состояние

$img->save();

Это создаст новый временное изображение текущего состояния.

restore

Вернуться к указанному состоянию

$img->restore( [ int $state = 1 ] );

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

undo

Отменить последний примененный фильтр

$img->undo();
Печать/экспорт