Параметры phpThumb — встроенной в MODX библиотеки

Параметры phpThumb - встроенной в MODX библиотеки MODX Revo

Данная библиотека создана Джеймсом Генрих. С ней взаимодействуют некоторые MODX дополнения, например: pThumb (или его альтернативы phpThumbOf, phpThumbOn они имеют одинаковые параметры и +- одинаковые настройки).

Параметры phpThumb

Название Описание Пример
src Путь до файла исходного изображения.
new Создать новую картинку, не миниатюру из существующего изображения. Требует набор параметров «w» и «h». &new=FF9505|80 — оранжевый background, 80% opacity (прозрачности ил наоборот непрозрачности). Фон устанавливаются цвета в формате hex. Параметр Opacity опциональный, по умолчанию равен 100%.
w Максимальная ширина выходного изображения в пикселях.
h Максимальная высота выходного изображения в пикселях.
wp Максимальная ширина для портретных изображений.
hp Максимальная высота для портретных изображений.
hl Максимальная высота для пейзажных изображений.
ws Максимальная ширина для квадратных изображений.
hs Максимальная высота для квадратных изображений.
f Формат изображения после обработки («webp», «jpeg», «png», или «gif»).
q Сжатие JPEG (качество).
  • 1 = наихудшее
  • 95 = наилучшее
  • 75 = по умолчанию
sx Левая сторона исходного прямоугольника (по умолчанию = 0) (значения 0 < sx < 1 представляют процент).
sy Верхняя сторона исходного прямоугольника (по умолчанию = 0) (значения 0 < sy < 1 представляют процент).
sw Ширина исходного прямоугольника (по умолчанию = fullwidth — полная ширена) (значения 0 < sw < 1 представляют процент)
sh Высота исходного прямоугольника (по умолчанию = fullheight — полная высота) (значения 0 < sh < 1 представляют процент)
zc Масштабирование-обрезка (zoom-crop). Автоматически обрезает больший размер, чтобы изображение заполнило меньший размер (требуются как «w», так и «h», переопределяет «iar», «far»). Установите на «1» или «C», чтобы масштабировать кадрирование по направлению к центру. Или установите на «T», «B», «L», «R», «TL», «TR», «BL», «BR» тяготеть к верхним/левым/нижним/правым направлениям (требуется ImageMagick для значений, отличных от «C» или «1»)
  • C — обрезает к центру
  • T — обрезает к верху
  • B — обрезает к низу
  • L — обрезает к левой стороне
  • R — обрезает к правой стороне
  • TL — обрезает к верхней левой стороне
  • TR — обрезает к верхней правой стороне
  • BL — обрезает к нижней левой стороне
  • BR — обрезает к нижней правой стороне
ica ImageCropAuto, требуется (PHP 5 >= 5.5.0, PHP 7). Значение может быть от 0 до 4 (IMG_CROP_DEFAULT, IMG_CROP_TRANSPARENT, IMG_CROP_BLACK, IMG_CROP_WHITE, IMG_CROP_SIDES) или может быть «5|<threshold>|<bgcolor>», где <threshold> между 0 и 1, а <bgcolor> — цвет фона в шестнадцатеричном формате.
bg Шестнадцатеричный цвет фона (по умолчанию = FFFFFF).
bc Шестнадцатеричный цвет границы (по умолчанию = 000000).
fltr Система фильтрации (доступно в основном только с включенным GD). Вызывается в виде массива с параметрами:
brit
яркость — fltr[]=brit|<value> — где <value> значение в диапазоне от -255 до 255.
cont
контрастность — fltr[]=cont|<value> — где <value> значение в диапазоне от -255 до 255.
gam
гамма-коррекция — fltr[]=gam|<value> — где <value> число от 0.01 до 10 (по умолчанию 1.0).
sat
насыщенность — fltr[]=sat|<value> — где <value> число в диапазоне от 0 (без изменений) до -100 (полное обесцвечивание = оттенки серого), или это может быть любое положительное число для повышенной насыщенности.
ds
DeSaturate (обесцвечивание) — fltr[]=ds|<value> — аналогично «sat», но положительные значения обесцвечивают, отрицательные — насыщают цветом.
gray
оттенки серого — fltr[]=gray — убрать цветность.
th
порог — fltr[]=th|<value> — переводит изображение в оттенки серого, затем все пиксели ярче <value> (диапазон 0-255) делает белыми, все пиксили темнее <value> делает черными.
rcd
уменьшить глубину цвета — fltr[]=rcd|<c>|<d> — где <c> количество цветов (2-256) в выходном изображении, а <d> равное «1» сгладить (по умолчанию) или «0» не сглаживать.
clr
раскрасить — fltr[]=clr|<value>|<color> — где <value> число между 0 и 100 для количества расцвечивания, <color> — цвет для расцвечивания.
sep
сепия — fltr[]=sep|<value>|<color> — где <value> число между 0 и 100 для количества расцвечивания (по умолчанию=50), и <color> цвет, чтобы раскрасить (по умолчанию=A28065).

Примечание: это ведет себя по-разному, когда применяется ImageMagick, в этом случае по умолчанию используется значение 80 и ниже.
значения дают более яркие/желтые изображения и выше значения дают более темные/синие изображения.

usm
UnSharpMask (нерезкое маскирование) — fltr[]=usm|<a>|<r>|<t> — где <a> это сумма (по умолчанию = 80, диапазон 0-255), <r> это радиус (по умолчанию = 0.5, диапазон 0.0-10.0), <t> это порог (по умолчанию = 3, диапазон 0-50).
blur
размытие — fltr[]=blur|<radius> — где (0 < <radius> < 25) (по умолчанию = 1).
gblr
Размытие по Гауссу — fltr[]=gblr.
sblr
Выборочное размытие — fltr[]=gblr.
smth
smooth — fltr[]=smth|<value> — где <value> весовое значение для матрицы (диапазон от -10 до 10, по умолчанию 6).
lvl
уровни — fltr[]=lvl|<channel>|<method>|<threshold> — где <channel> может быть одним из «r», «g», «b», «a» (для Red, Green, Blue, Alpha соответственно), или ‘*’ для всех RGB каналов (по умолчанию) основанных на шкале серого среднего.

<threshold> — количество самых ярких/самых темных пикселей будет обрезано в процентах (по умолчанию = 0,1%). Использование параметров по умолчанию (&fltr[]=lvl) аналогично авто контрасту в Adobe Photoshop.

Методы ImageMagick могут поддерживать несколько каналов (например, «lvl|rg|3»), но внутренние методы не могут (они будут
использовать первый символ строки канала в качестве канала)
<method> может быть одним из:
0=внутренний RGB;
1 = внутренняя шкала серого;
2=ImageMagick Contrast-Stretch (по умолчанию)
3=ImageMagick Normalize (может показаться перенасыщенным)

wb
баланс белого — fltr[]=wb|<c> — где <c> это целевой шестнадцатеричный цвет к балансу белого, этот цвет соответствует «белому» или светло-серому. Фильтр пытается поддерживать яркость, поэтому теоретически можно использовать любой серый цвет.

«wb» в настройках по умолчанию уже дает эффект, аналогичный «lvl», обычно нет необходимости использовать «lvl», если уже используется «wb».

hist
гистограмма — fltr[]=hist|<b>|<c>|<w>|<h>|<a>|<o>|<x>|<y> — где:
  • <b> — цветная (ые) полоса (ы) для отображения сзади и спереди (одно или несколько значений «rgba *» для Red, Green, Blue, Alpha и Grayscale соответственно).
  • <c> — разделенный точками с запятой список шестнадцатеричных цветов, используемых для каждой полосы графика (по умолчанию FF0000, 00FF00, 0000FF, 999999, FFFFFF соответственно).
  • <w> и <h> — ширина и высота наложенной гистограммы в пикселях или, если <= 1, то процент от ширины / высоты исходного изображения.
  • <a> — выравнивание (такое же, как для «wmi» и «wmt»).
  • <o> — непрозрачность от 0 (прозрачная) до 100 (непрозрачная) (требуется PHP v4.3.2, в противном случае — 100% непрозрачная).
  • <x> и <y> — край края в пикселях (или процент, если 0 <(x | y) <1).
over
overlay / underlay накладывает изображение на миниатюру или накладывает миниатюру на другое изображение (например, для создания рамки рисунка) — fltr[]=over|<i>|<u>|<m>|<o> — где:
  • <i> — имя файла изображения.
  • <u> — это «0» (по умолчанию) для наложения изображения поверх эскиза или «1» для наложения эскиза поверх изображения.
  • <m> — это поле может быть в абсолютных пикселях или если <1 представляет собой процент от размера эскиза [должно быть<0,5] (по умолчанию 0 для наложения и 10% для наложения).
  • <o> — непрозрачность (0 = прозрачный, 100 = непрозрачный) (требуется PHP v4.3.2, в противном случае — 100% непрозрачный).
wmi
водяной знак в виде изображения — fltr[]=wmi|<f>|<a>|<o>|<x>|<y>|<r> — где:
  • <f> — накладываемое изображение.
  • <a> — выравнивание, один из BR, BL, TR, TL, C, R, L, T, B, * (=плитка).
  • <o> — прозрачность от 0 (прозрачный) до 100 (непрозрачный).
  • <x> — и <y> отступ от края (и между плиткой) в пикселях (или процентах если 0 < (x|y) < 1).
  • <r> — угол поворота водяного знака.
wmt
текстовый водяной знак — fltr[]=wmt|<t>|<s>|<a>|<c>|<f>|<o>|<m>|<n>|<b>|<O>|<x> — где:
  • <t> — текст используемый в качестве водяного знака.
  • <s> — размер шрифта (1-5 для встроенного шрифта или размер шрифта для шрифтов TrueType).
  • <a> — выравнивание, один из BR, BL, TR, TL, C, R, L, T, B, * (=плитка).
  • <c> — цвет текста.
  • <f> — имя файла TTF (опционально, если не указать будет использоваться встроенный шрифт).
  • <o> — прозрачность от 0 (прозрачный) до 100 (непрозрачный).
  • <m> — отступ от края (и между плиткой) в процентах.
  • <n> — угол.
  • <b> — цвет фона.
  • <O> — прозрачность фона от 0 (прозрачный) до 100 (непрозрачный).
  • <x> — направление распространения фона (либо «x» либо «y», или оба, но так будет закрыто все изображение).

<x> — работает только со шрифтами TTF, но не со встроенными.

flip
сдвиг изображения по оси X или Y — fltr[]=flip|x или fltr[]=flip|y.
ric
скруглить углы изображения (для вывода прозрачных изображений PNG) — fltr[]=ric|<x>|<y> — где:
  • <x> — горизонтальный радиус кривой.
  • <y> — вертикальный радиус.
elip
похоже на скругление углов, но более эксримальное — fltr[]=elip.
mask
fltr[]=mask|filename.png|<i> — значения маски в оттенках серого. Применяется в качестве альфа-канала к основному изображению. Белый непрозрачный, черный прозрачный, если параметр <i> (инвертировать) не установлен в 1, в этом случае черный непрозрачный, а белый прозрачный.
bvl
BeVeL — fltr[]=bvl|<w>|<c1>|<c2> — где:
  • <w> — ширина скоса.
  • <c1> — цвет в формате HEX для верхнего и левого оттенков.
  • <c2> — цвет в формате HEX для нижнего и правого оттенков.
bord
граница — fltr[]=bord|<w>|<rx>|<ry>|<c> — где:
  • <w> — ширина границы в пикселях.
  • <rx> и <ry> — горизонтальные и вертикальные радиусы для закругленных углов.
  • <c> — цвет границы.
fram
рамка наподобие «bord», но более настраиваемая — fltr[]=fram|<w1>|<w2>|<c1>|<c2>|<c3> — где:
  • <w1> — ширина основной границы.
  • <w2> — ширина каждой стороны скосной части.
  • <c1> — цвет в формате HEX главной границы.
  • <c2> — цвет подсветки границы.
  • <c3> — цвет тени границы.
drop
тень — fltr[]=drop|<d>|<w>|<clr>|<a>|<o> — где:
  • <d> — расстояние от изображения до тени.
  • <w> — ширина затенения тени (еще не реализовано).
  • <clr> — цвет тени в формате HEX.
  • <a> — угол тени (по умолчанию = 225).
  • <o> — непрозрачность (0 = прозрачный, 100 = непрозрачный, по умолчанию = 100) (еще не реализовано)
crop
обрезка изображения — fltr[]=crop|<l>|<r>|<t>|<b> — где:
  • <l> — количество пикселей для обрезки с левой стороны измененного изображения.
  • <r> — количество пикселей для обрезки с правой стороны измененного изображения.
  • <t> — количество пикселей для обрезки с верхней стороны измененного изображения.
  • <b> — количество пикселей для обрезки с нижней стороны измененного изображения.
rot
поворот — fltr[]=rot|<a>|<b> — где:
  • <a> — угол поворота в градусах.
  • <b> — цвет фона. Подобно «ra», но применяется после обработки других фильтров, поэтому вы можете вращать другие фильтры.
size
изменение размера —  fltr[]=size|<x>|<y>|<s> — где:
  • <x> — горизонтальный размер в пикселях.
  • <y> — вертикальный размер в пикселях.
  • <s> растянуть (если = 1) или изменить размер пропорционально (0, по умолчанию) <x> и <y> будут интерпретироваться как процент от текущего размера изображения если (0 < X < 1)
Не используйте этот фильтр без необходимости. Только в случаях, когда к другим фильтрам необходимо применить абсолютное позиционирование на основе исходного изображения и полученное изображение должно быть изменено после применения других фильтров. Этот фильтр является менее эффективным, чем стандартные процедуры изменения размера.
md5s MD5-хэш исходного изображения
xto EXIF ​​Thumbnail Only — извлечение только EXIF эскиз и не делать никакой дополнительной обработки.
ra = Повернуть на угол: угол поворота в градусах положительный = против часовой стрелки, отрицательный = по часовой стрелке.
ar Автоповорот: установите «x», чтобы использовать ориентацию EXIF сохраняется камерой. Также можно установить на «l» или «L» для пейзажа или «p» или «P» для портрета. «л» и «P» вращают изображение по часовой стрелке, «L» и «p» поверните изображение против часовой стрелки.
sfn Номер исходного кадра — используйте этот номер кадра/страницы для многокадровые/многостраничные исходные изображения (GIF, TIFF и т. д.).
aoe Разрешить увеличение вывода — переопределяет настройку для $CONFIG[‘output_allow_enlarging’] (1=вкл., 0=выкл.) («far» и «iar» переопределяют это и разрешают вывод больше, чем ввод)
iar Игнорировать соотношение сторон — отключить пропорциональное изменение размера и растяните изображение, чтобы оно соответствовало «h» и «w» (оба должны быть установлено). (1=вкл., 0=выкл.)
far Force Aspect Ratio — изображение будет создано в размере задается «w» и «h» (оба должны быть установлены). Выравнивание: L=слева,R=справа,T=сверху,B=снизу,C=центру. BL,BR,TL,TR используйте соответствующее направление, если изображение пейзажное или портретное.
dpi количество точек на дюйм — ввод значения DPI при импорте из формат векторного изображения, такой как PDF, WMF и т.д.
sia Сохранить изображение как — имя файла по умолчанию для сохранения. изображение как. Укажите базовое имя файла, расширение (например: «.png») будет автоматически добавлен.
maxb МАКСИМАЛЬНЫЙ размер байта — качество вывода автоматически устанавливается на уместить миниатюру в байты «maxb» (сжатие настраивается качество для JPEG, настраивается битовая глубина для PNG и GIF)
down Имя файла для сохранения изображения. Если это установлено браузер предложит сохранить это имя файла, а не чем отображать изображение

Общие замечания

* Всегда используйте локальное имя файла изображения, где это возможно, а не полный URL-адрес http://, потому что производительность намного лучше, меньше (или вообще без) использование временных файлов, и проверка последнего изменения кэшированных файлов не работает для
удаленные файлы. Например:
хорошо: phpThumb.php?src=/images/nicepic.jpg
плохо: phpThumb.php?src=/home/httpd/example/images/nicepic.jpg
хуже: phpThumb.php?src=http://example.com/images/nicepic.jpg

* Миниатюры будут масштабироваться пропорционально, чтобы поместиться в коробку размером не более (ширина * высота) пикселей (если не установлено «iar»)

* Кэширование эскизов для URL-адресов или источников базы данных требует абсолютное имя каталога для $config_cache_directory. Миниатюры кэшированных физических файлов будут воссозданы, если исходный файл изменяется, но удаленные файлы/файлы базы данных не может (время модификации не всегда доступно)

* Обрезка изображений может быть указана с любым точным пикселем значения для параметров sx/sy/sw/sh, или если они установлены до значения >0 и <1, то они интерпретируются как процент ширины/высоты исходного изображения. Например, чтобы обрезать 25% со всех сторон, вы должны указать параметры: phpThumb.php?src=pic.jpg&sx=.25&sy=.25&sw=.5&sh=.5

* У phpThumb() могут быть проблемы с доступом к временным файлам на серверах где включен безопасный режим, особенно при доступе файл через HTTP, или когда несвязанная версия GD используется. Указание «config_temp_directory» может помочь

* Для правильного разрешения имен файлов в стиле /~user/ требуется apache_lookup_uri(), который отсутствует или не работает Apache2, или если PHP не установлен как модуль Apache. phpThumb() пытается обойти это, если это недоступен, но может потребоваться указать полное имя файла для «src», если у вас возникнут проблемы.

* phpThumb() работает лучше и быстрее, когда доступен ImageMagick.
Большинство функций будут работать только с GD2, но
скорость намного выше с ImageMagick и намного больше
изображения могут быть обработаны с помощью ImageMagick, чем GD.

* Для работы большинства (если не всех) фильтров требуется GD v2.x. Но со многими фильтрами может справиться ImageMagick.
вместо GD.

* Фильтры, обрабатываемые ImageMagick или GD:
— brit;cont;ds;sat;grey;clr;sep;gam;neg;th;rcd;flip;edge;emb;lvl;размытие;gblr;usm;wb;
* Фильтры, обрабатываемые только ImageMagick:
— пока нет
* Фильтры обрабатываются только GD + PHP5:
— sblr;среднее;что-то;
* Фильтры, обрабатываемые только GD2:
— bvl;wmi;wmt;over;hist;frame;drop;mask;elip;ric;bord;

Примеры использования на примере pThumb

Данный сниппет можно использовать, как модификатор. К примеру у нас есть дополнительное поле image и мы хотим его вывести в ресурсе определенного размера, например 550x400px (обрезать), получаем:

[[*image:pthumb=`w=550&h=400&zc=1`]]

Если вы используете fenom то вывод будет таким: {$_modx->resource.image | pthumb : "w=550&h=400&zc=1"}

А если выводить сниппетами типа pdoPage на других ресурсах, то выводы будут выглядеть так:

[[+image:pthumb=`w=550&h=400&zc=1`]] или [[+tv.image:pthumb=`w=550&h=400&zc=1`]]

И на fenom так: {$image | pthumb : "w=550&h=400&zc=1"} или так {$tv.image | pthumb : "w=550&h=400&zc=1"}

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( Пока оценок нет )
Web-Revenue.ru
Добавить комментарий

  1. Евгений

    Добрый день
    Подскажите, как на Fenom его перевести

    Ответить
    1. Алексей автор

      Вот так: {$_modx->resource.image | pthumb : "w=550&h=400&zc=1"}. + В статье еще пару примеров указал.

      Ответить