Thumbnail - класс для создания миниатюр изображений по индивидуальным критериям.

Скачать:thumbnail.zip 4.46 KB

Переменные

Класс содержит несколько публичных статичных переменных, определяющих общие правила для всех миниатюр. Вы можете просто изменить их значение или переопределить в своём классе.

$sourceFolder

Папка хранения изображений относительно корня документа. Относительно неё следует указывать путь при создании объекта. Относительно неё же будет будет построено дерево каталогов для хранения изображений. По умолчанию - / (корень документа).

$targetFolder

Папка хранения миниатюр относительно корня документа. По умолчанию - /thumbnails/.

$paddingColor

Цвет заливки свободных полей миниатюры. Указывается шестнадцатиричная запись для цветовой RGB-модели. По умолчанию - ffffff (белый).

$webRoot

Путь до корня документа. По умолчанию будет использована переменная $_SERVER['DOCUMENT_ROOT']

$getThumbnailPathMethod

Функция определяющая путь к эскизу и имя файла. На вход должна принимать объект Thumbnail и возвращать строку. По умолчанию будет использован собственный метод класса.

Методы

of($path, $width = 0, $height = 0, $crop = false, $stretch = false)

Статичный метод возвращающий новый объект Thumbnail

$path - единственный обязательный параметр, путь к исходному изображению относительно папки с изображениями.

$width - ширина миниатюры в пикселях, при значении 0 будет вычислена автоматически, исходя из пропорций исходного изображения. Также может быть задано методами width() и size()

$height - высота миниатюры в пикселях, при значении 0 будет вычислена автоматически, исходя из пропорций исходного изображения. Также может быть задано методами height() и size()

$crop - следует ли обрезать изображение, если заданные пропорции не совпадают с пропорциями исходного изображения. По умолчанию false - изображение будет "впихнуто" в заданные рамки, оставшиеся поля будут залиты выбранным цветом. Значение также может быть изменено методами crop() и contain()

$stretch - растягивать ли изображение, если его исходные размеры меньше заданных для миниатюры. По умолчанию false. Значение также может быть изменено методами stretch() и nostretch()

width($width)

Устанавливает фиксированную ширину миниатюры в пикселях, при этом для высоты устанавливается размер 0 - будет высчитана автоматически, исходя из пропорций исходного изображения. Возвращает объект.

height($height)

Устанавливает фиксированную высоту миниатюры в пикселях, при этом для ширины устанавливается размер 0 - будет высчитана автоматически, исходя из пропорций исходного изображения. Возвращает объект.

size($width, $height)

Устанавливает фиксированные размеры миниатюры в пикселях. Возвращает объект.

crop()

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

contain()

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

stretch()

Указывает, что в случае, если размеры исходного изображения меньше заданных для миниатюры следует исходное изображение растянутью Возвращает объект.

nostretch()

Указывает, что в случае, если размеры исходного изображения меньше заданных для миниатюры следует исходное оставить как есть. Возвращает объект.

path()

Создаёт, если нужно, миниатюру и возвращает путь к ней. Метод также будет вызван при попытке преобразовать объект к строке:

<img src="<?php echo Thumbnail::of('images/example.jpg', 100)->path();?>" />
<!-- здесь path() можно опустить: -->
<img src="<?php echo Thumbnail::of('images/example.jpg', 100);?>" />

img($attributes = [])

Оборачивает путь к миниатюре в HTML-тег img. В качестве параметра можно указать массив аттрибутов тега с их значениями:

<img src="<?php echo Thumbnail::of('images/example.jpg', 100);?>" class="thumbnail" />
<!-- можно записать так: -->
<?php echo Thumbnail::of('images/example.jpg', 100)->img(['class' => 'thumbnail']);?>

Демо




<img src="<?php echo Thumbnail::of('example1.jpg', 150, 150) ?>" />	
<img src="<?php echo Thumbnail::of('example1.jpg')->size(150,150) ?>" />
<?php echo Thumbnail::of('example1.jpg')->size(150,150)->contain()->nostratch()->img() ?>