Данная библиотека создана Джеймсом Генрих. С ней взаимодействуют некоторые 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 (качество). |
|
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») |
|
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 каналов (по умолчанию) основанных на шкале серого среднего.
Методы ImageMagick могут поддерживать несколько каналов (например, «lvl|rg|3»), но внутренние методы не могут (они будут |
|
wb |
баланс белого — fltr[]=wb|<c> — где <c> это целевой шестнадцатеричный цвет к балансу белого, этот цвет соответствует «белому» или светло-серому. Фильтр пытается поддерживать яркость, поэтому теоретически можно использовать любой серый цвет.
«wb» в настройках по умолчанию уже дает эффект, аналогичный «lvl», обычно нет необходимости использовать «lvl», если уже используется «wb». |
|
hist |
гистограмма — fltr[]=hist|<b>|<c>|<w>|<h>|<a>|<o>|<x>|<y> — где:
|
|
over |
overlay / underlay накладывает изображение на миниатюру или накладывает миниатюру на другое изображение (например, для создания рамки рисунка) — fltr[]=over|<i>|<u>|<m>|<o> — где:
|
|
wmi |
водяной знак в виде изображения — fltr[]=wmi|<f>|<a>|<o>|<x>|<y>|<r> — где:
|
|
wmt |
текстовый водяной знак — fltr[]=wmt|<t>|<s>|<a>|<c>|<f>|<o>|<m>|<n>|<b>|<O>|<x> — где:
<x> — работает только со шрифтами TTF, но не со встроенными. |
|
flip |
сдвиг изображения по оси X или Y — fltr[]=flip|x или fltr[]=flip|y . |
|
ric |
скруглить углы изображения (для вывода прозрачных изображений PNG) — fltr[]=ric|<x>|<y> — где:
|
|
elip |
похоже на скругление углов, но более эксримальное — fltr[]=elip . |
|
mask |
fltr[]=mask|filename.png|<i> — значения маски в оттенках серого. Применяется в качестве альфа-канала к основному изображению. Белый непрозрачный, черный прозрачный, если параметр <i> (инвертировать) не установлен в 1, в этом случае черный непрозрачный, а белый прозрачный. |
|
bvl |
BeVeL — fltr[]=bvl|<w>|<c1>|<c2> — где:
|
|
bord |
граница — fltr[]=bord|<w>|<rx>|<ry>|<c> — где:
|
|
fram |
рамка наподобие «bord», но более настраиваемая — fltr[]=fram|<w1>|<w2>|<c1>|<c2>|<c3> — где:
|
|
drop |
тень — fltr[]=drop|<d>|<w>|<clr>|<a>|<o> — где:
|
|
crop |
обрезка изображения — fltr[]=crop|<l>|<r>|<t>|<b> — где:
|
|
rot |
поворот — fltr[]=rot|<a>|<b> — где:
|
|
size |
изменение размера — fltr[]=size|<x>|<y>|<s> — где:
Не используйте этот фильтр без необходимости. Только в случаях, когда к другим фильтрам необходимо применить абсолютное позиционирование на основе исходного изображения и полученное изображение должно быть изменено после применения других фильтров. Этот фильтр является менее эффективным, чем стандартные процедуры изменения размера.
|
|
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"}
Добрый день
Подскажите, как на Fenom его перевести
Вот так:
{$_modx->resource.image | pthumb : "w=550&h=400&zc=1"}
. + В статье еще пару примеров указал.