phpThumb(), параметры и возможности

phpThumb() использует библиотеку GD для создания миниатюр из изображений (JPEG, PNG, GIF, BMP и т. д.) на лету. Размер вывода настраивается (может быть больше или меньше, чем источник), источником может быть все изображение или только часть исходного изображения.

Официальный сайт библиотеки phpThumb 

Документация phpThumb

Параметры phpThumb():

  • src — имя файла исходного изображения.

  • new — создать новую картинку, не миниатюру из существующего изображения. Требует набор параметров "w" и "h". Пример: &new=FF0000|75  — красный background, 75% opacity. Для фона устанавливаются цвета в формате hex. Параметр Opacity опциональный, по умолчанию 100%.

  • w — максимальная ширина выходной миниатюры в пикселях.

  • — максимальная высота выходной миниатюры в пикселях.

  • wp — максимальная ширина для портретных изображений.

  • hp — максимальная высота для портретных изображений.

  • wl — максимальная ширина для пейзажных изображений.

  • hl — максимальная высота для пейзажных изображений.

  • ws — максимальная ширина для квадратных изображений.

  • hs —  максимальная высота для квадратных изображений.

  • f — формат изображения после обработки ("webp", "jpeg", "png", or "gif").

  • q — компрессия JPEG (качество) (1 = наихудшее, 95 = отличное, 75 = по умолчанию)

  • sx — left side of source rectangle (по умолчанию: 0) (values 0 < sx < 1 represent percentage)  

  • sy — top side of source rectangle (по умолчанию: 0) (values 0 < sy < 1 represent percentage)  

  • sw — width of source rectangle (по умолчанию: fullwidth) (values 0 < sw < 1 represent percentage)  

  • sh — height of source rectangle (по умолчанию: fullheight) (values 0 < sh < 1 represent percentage)  

  • zc — масштабирование при обрезке (zoom-crop). С авто кропом, будет обрезаться по большему размеру, чтобы изображение заполняло меньший размер (требует указания обоих параметров "w" и "h", переопределяет "iar", "far"). Установка значения в "1" или "C" зум-кропит к центру, значения "T", "B", "L", "R", "TL", "TR", "BL", "BR" стремяться в top/left/bottom/right направлениях (необходим ImageMagick для значений отличных от "C" или "1")

  • bg — цвет фона в hex (default: FFFFFF).

  • bc — цвет границы hex (default: 000000).

  • fltr — система фильтров. Вызывается в виде массива со следующими параметрами:

    • "brit" (Brightness | Яркость ) [ex: &fltr[]=brit|<value>]  где <value> это значение +/- регулиовки яркости (range -255 to 255). Доступно в PHP5 в связке с GD.

    • "cont" (Constrast | Контрастность) [ex: &fltr[]=cont|<value>]  где <value> это значение +/- регулиовки контраста (range -255 to 255)  Доступно в PHP5 в связке с GD.

    • "gam" (Gamma Correction | Гамма-корекция) [ex: &fltr[]=gam|<value>]  где <value> может быть числом от 0.01 до 10 (default 1.0)  Должен быть больше 0 (0 не дает эффекта). Тут нет максимума, но числа выше 10 достаточно бесполезны. Отрицательные числа тоже делают кое-что, возможно не совсем желаемый эффект, но тем не менее интересный.

    • "sat" (SATuration | Насыщенность) [ex: &fltr[]=sat|<value>]  где <value> это число между нулем (no change)  и -100 (полностью десатурированный — черно-белое изображение), или это может быть положительным числом, для повышения яркости.

    • "ds" (DeSaturate | Обесцвечивание) [ex: &fltr[]=ds|<value>]  псевдоним для "sat" кроме значений инвертированных (положительные значения удаляют цвет, отрицательные значения повышают насыщенность)

    • "gray" (Grayscale | Оттенки серого) [ex: &fltr[]=gray]  убирает все цвета с изображения, отображая его состоящим из оттенков серого.

    • "th" (Threshold | Уровни) [ex: &fltr[]=th|<value>] делать изображение черно-белым, затем делает все пиксели ярче, чем <value> (в промежутке от 0 до 255) для белого, и все пиксели темнее чем <value> для черного.

    • "rcd" (Reduce Color Depth | Уменьшить глубину цвета) [ex: &fltr[]=rcd|<c>|<d>]  где <c> это количество цветов (2-256) которое вы хотите получить в итоговом изображении, и <d> это "1" для размытия (deault) or "0" для отсутствия размытия.

    • "clr" (Colorize | Наложение цвета) [ex: &fltr[]=clr|<value>|<color>]  где <value> числа между 0 и 100 процент раскрашивания, а <color> цвет в шестнадцатеричном формате (hex) в который надо раскрасить. 

    • "sep" (Sepia | Сепия ) [ex: &fltr[]=sep|<value>|<color>]  where <value> число между 0 и 100 означающее силу окраски (default=50), и <color> это цвет в формате hexв который надо окрасить (по умолчанию: A28065).  Примечание: это происходит по-разному, когда применяется ImageMagick, в этом случае 80 по умолчанию, и более низкие значения дают более яркие / желтые изображения, а более высокие значения дают более темные / более голубые изображения.

    • "usm" (UnSharpMask | Усиление резкости) [ex: &fltr[]=usm|<a>|<r>|<t>] где:

      • <a> это значение (по умолчанию: 80, диапазон: 0-255),  

      • <r> это радиус (по умолчанию: 0.5, диапазон: 0.0-10.0),  

      • <t> это предел (по умолчанию: 3, диапазон: 0-50).

    • "blur" (Blur | Размытие) [ex: &fltr[]=blur|<radius>]  где (0 < <radius> < 25) (по умолчанию: 1).

    • "gblr" (Gaussian Blur | Размытие по Гаусу) [ex: &fltr[]=gblr]  Доступно в PHP5 только в комплекте с GD.

    • "sblr" (Selective Blur | Избирательное размытие) [ex: &fltr[]=gblr]  Доступно в PHP5 только в комплекте с GD.

    • "smth" (Smooth | Сглаживание) [ex: &fltr[]=smth|<value>]  где <value> отягощающее значение для матрицы (диапазон от -10 до 10, по умолчанию 6)  Доступно в PHP5 только в комплекте с GD.

    • "lvl" (Levels | Уровни)  [ex: &fltr[]=lvl|<channel>|<method>|<threshold>  где:

      • <channel> может быть одним из 'r', 'g', 'b', 'a' (цветовая схема Red, Green, Blue, Alpha), или '*' для всех RGB каналов (по умолчанию) на основе среднего оттенка серого.  ImageMagick методы могут поддерживать несколько каналов (eg "lvl|rg|3") но внутренние методы не могут (они будут использовать первый символ строки в качестве канала)  

      • <method> может быть одним из:  0 = Internal RGB;  1 = Internal Grayscale;  2 = ImageMagick Contrast-Stretch (default)  3 = ImageMagick Normalize (may appear over-saturated)

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

    • "wb" (White Balance | Баланс белого) [ex: &fltr[]=wb|<c>]  где <c> — это цвет в формате hex для определения баланса белого, этот цвет — то, что «должно быть» белым или светло-серым. Фильтр пытается поддерживать яркость, поэтому теоретически можно использовать любой серый цвет. Если <c> опущен, фильтр угадывает на основе самых ярких пикселей в каждом из RGB. ИЛИ <c> может быть процентом отсечения белого, используемого для расчета автоматического баланса белого (по умолчанию - 0,1%). ПРИМЕЧАНИЕ: «wb» в настройках по умолчанию уже дает эффект, аналогичный «lvl», обычно нет необходимости использовать «lvl», если «wb» уже используется.

    • "hist" (Histogram | Гистограмма)  [ex: &fltr[]=hist|<b>|<c>|<w>|<h>|<a>|<o>|<x>|<y>] Где:

      • <b> — цветная(ые) полоса(ы) для отображения с зада на перед (один или несколько из «rgba *» для Red Green Blue Alpha и Grayscale соответственно);

      • <c> — разделенный точками с запятой список hex цветов, используемых для каждой полосы графика (по умолчанию 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 image | Наложение) накладывает изображение на эскиз или накладывает эскиз на другое изображение (например, для создания рамки изображения) [ex: & 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" (WaterMarkImage | Водяной знак из изображения)  [ex: &fltr[]=wmi|<f>|<a>|<o>|<x>|<y>|<r>] где:

      • <f> — имя файла изображения для наложения;

      • <a> — выравнивание (одно из следующих: BR, BL, TR, TL, C, R, L, T, B, *), где B = низ, T = верх, L = слева, R = справа, C = центр, * = плитка) * or * абсолютная позиция в пикселях (от верхнего левого угла холста до верхнего левого угла наложения) в формате {xoffset} x {yoffset} (например: «10x20») примечание: это центральная позиция изображения, если <x> и <y> установлены.

      • <o> — непрозрачность от 0 (прозрачный) до 100 (непрозрачный) (требуется PHP v4.3.2, в противном случае — 100% непрозрачный);

      • <x> и <y> — граничное (и промежуточное) поле в пикселях (или процентах, если 0 <(x | y) <1) * или *, если <a> — формат абсолютной позиции, тогда <x> и <y> представляет максимальную ширину и высоту, на которую изображение водяного знака будет масштабировано, чтобы поместиться внутрь;

      • <r> — угол поворота наложенного водяного знака.

    • "wmt" (WaterMarkText | Водяной знак из текста)  [ex: &fltr[]=wmt|<t>|<s>|<a>|<c>|<f>|<o>|<m>|<n>|<b>|<O>|<x>] где:

      • <t> — текст для использования в качестве водяного знака; URLencoded Unicode HTMLentities должен использоваться для символов, кроме chr (127). Например, символ «восьмая нота» (U + 266A) представлен как «♪», а затем кодируется в формате «%26%239834%3B». Любой экземпляр метасимволов будет заменен их вычисленным значением. В настоящее время поддерживается:

        • ^ Fb — размер файла исходного изображения в байтах.

        • ^ Fk — размер файла исходного изображения в килобайтах.

        • ^ Fm — размер файла исходного изображения в мегабайтах.

        • ^ X — ширина исходного изображения в пикселях.

        • ^ Y — высота исходного изображения в пикселях.

        • ^ x — ширина эскиза в пикселях.

        • ^ y — высота миниатюры в пикселях.

        • ^^ — символ ^.

      • <s> — это размер шрифта (1-5 для встроенного шрифта или размер точки для шрифтов TrueType);

      • <a> — выравнивание (одно из следующих: BR, BL, TR, TL, C, R, L, T, B, * где B = низ, T = верх, L = слева, R = справа, C = центр, * = плитка); примечание: * не работает для встроенного шрифта "wmt" * или * абсолютной позиции в пикселях (от верхнего левого угла холста до верхнего левого угла наложения) в формате {xoffset} x {yoffset} (например: «10x20»)

      • <c> — цвет текста в формате hex;

      • <f> — имя файла TTF-файла (необязательно, если не указан, будет использован встроенный шрифт);

      • <o> — непрозрачность от 0 (прозрачная) до 100 (непрозрачная) (требуется PHP v4.3.2, в противном случае — 100% непрозрачная);

      • <m> — это край (и интервал) в процентах;

      • <n> — угол;

      • <b> — цвет фона в формате hex;

      • <O> — непрозрачность фона от 0 (прозрачная) до 100 (непрозрачная) (требуется PHP v4.3.2, в противном случае - 100% непрозрачная);

      • <x> — это направление(я), в котором фон расширяется («x» или «y» (или оба, но оба они затеняют все изображение)). Примечание: работает только со шрифтами TTF, а не со встроенными.

    • "flip" [ex: &fltr[]=flip|x   or   &fltr[]=flip|y]  отражение изображения по оси X или Y.

    • "ric" [ex: &fltr[]=ric|<x>|<y>] скругление углов изображения (to transparent  for PNG output), где <x> горизонтальный радиус криой, а <y> вертикальный.

    • "elip" [ex: &fltr[]=elip]  похоже на скругление углов но более глубокий.

    • "mask" [ex: &fltr[]=mask|filename.png|<i>]  Значения маски в оттенках серого применяются в качестве альфа-канала к основному изображению. Белый непрозрачный, черный прозрачный, если параметр <i> (инвертировать) не установлен в 1, в этом случае черный непрозрачный и белый прозрачный.

    • "bvl" (BeVeL | Наклон) [ex: &fltr[]=bvl|<w>|<c1>|<c2>]  где:

      • <w> — ширина скоса,

      • <c1> — цвет в формате hex для верхнего и левого оттенков,

      • <c2> — цвет в формате hex для нижнего и правого оттенков.

    • "bord" (BORDer | Рамка) [ex: &fltr[]=bord|<w>|<rx>|<ry>|<c>  где:

      • <w> — ширина в пикселях,

      • <rx> и <ry> — горизонтальные и вертикальные радиусы для закругленных углов,

      • <c> — цвет в формате hex для границы.

    • "fram" (FRAMe | Рамка) рисует рамку, похоже на "bord" но более настраиваемая [ex: &fltr[]=fram|<w1>|<w2>|<c1>|<c2>|<c3>] где:

      • <w1> — ширина главной границы,

      • <w2> — ширина каждой стороны скосной части,

      • <c1> — цвет в формате hex для главной границы,

      • <c2> — цвет фаски подсветки, <c3> цвет фаски тени.  

    • "drop" (DROP shadow | Отбрасывание тени)  [ex: &fltr[]=drop|<d>|<w>|<clr>|<a>|<o>] где:

      • <d> — расстояние от изображения до тени,

      • <w> — ширина затенения тени (еще не реализовано),

      • <clr> — цвет в формате hex для тени,

      • <a> — угол тени (по умолчанию = 225),

      • <o> — непрозрачность (0 = прозрачный, 100 = непрозрачный, по умолчанию = 100) (еще не реализовано).

    • "crop" (CROP image | Обрезка изображения)  [ex: &fltr[]=crop|<l>|<r>|<t>|<b>] где <l> — количество пикселей для обрезки с левой стороны измененного размера изображения; <r>, <t>, <b> для правого, верхнего и нижнего соответственно. Где (0 <x <1) значение будет использоваться в процентах от ширины / высоты. Левый и верхний обрезки имеют приоритет над правым и нижним значениями. Кадрирование будет ограничено таким образом, чтобы всегда оставался как минимум 1 пиксель ширины и высоты.

    • "rot" (ROTate | Поворот)  [ex: &fltr[]=rot|<a>|<b>] где:

      • <a> — угол поворота в градусах;

      • <b> — цвет в формате hex для фона. Аналогичен обычному параметру "ra", но применяется в порядке фильтра после обычной обработки, поэтому вы можете вращать результирующие данные других фильтров. 

    • "size" (reSIZE | Изменение размера)  [ex: &fltr[]=size|<x>|<y>|<s>] где:

      • <x> — горизонтальное измерение в пикселях,

      • <y> — вертикальное измерение в пикселях,

      • <s> — логическое значение: растянуть (если 1) или пропорционально изменить размер (0, по умолчанию) <x>, и <y> будет интерпретироваться как процент от текущего размера итогового изображения, если значения (0 <X <1).

      • ПРИМЕЧАНИЕ: НЕ используйте этот фильтр, если это не является абсолютно необходимым. Он предусмотрен только для случаев, когда другие фильтры должны иметь абсолютное позиционирование на основе исходного изображения, а результирующее изображение должно быть изменено после применения других фильтров. Этот фильтр менее эффективен, чем стандартные процедуры изменения размера.

    • "stc" (Source Transparent Color | )  [ex: &fltr[]=stc|<c>|<n>|<x>] где:

      • <c> —  цвет в формате hex для целевого цвета, который нужно сделать прозрачным;

      • <n> — минимальное пороговое значение в процентах (все пиксели в пределах <n> % целевого цвета будут прозрачными на 100%, по умолчанию <n> = 5);

      • <x> — максимальный порог в процентах (все пиксели, превышающие <x> % от целевого цвета, будут непрозрачными на 100%, по умолчанию <x> = 10); пиксели между двумя порогами будут частично прозрачными.

  • md5s — MD5 хэш исходного изображения — если этот параметр передается вместе с хешем исходного изображения, то исходное изображение не проверяется на наличие или изменение, и используется кэшированный файл (если имеется). Если 'md5s' передается как пустая строка, phpThumb.php прекращает работу и выдает правильное MD5 хеш-значение. Этот параметр является однофайловым эквивалентом параметров конфигурации 'cache_source_filemtime_ignore_ *'.

  • xto — использовать только миниатюры EXIF: извлекать EXIF миниатюры, и не делать какой-либо дополнительной обработки.

  • ra — Поворот на угол (Rotate by Angle): угол поворота в градусах

    • положительный — против часовой стрелки;

    • отрицательный — по часовой стрелке. 

  • ar — авто поворот (Auto Rotate): установка "x" использует EXIF ориентацию сохранённую камерой. Можно также установить «l» или «L» для пейзажа, или «p» или «P» для портрета. «l» и «P» поворачивают изображение по часовой стрелке, «L» и «p» поворачивают изображение против часовой стрелки. 

  • sfn — номер кадра источника (Source Frame Number): используйте этот номер кадра / страницы для многокадровых / многостраничных исходных изображений (GIF, TIFF и т. д.).

  • aoe — разрешить увеличение изображения (Output Allow Enlarging) — переопределить настройку для $CONFIG['output_allow_enlarging'] (1 = вкл, 0 = выкл) ("far" и "iar" оба переопределяют это и позволяют итоговое изображение больше, чем вводное).

  • iar — (Ignore Aspect Ratio) — отключить пропорциональное изменение размера и растянуть изображение, чтобы соответствовать "h" & "w" (оба параметра должны быть установлены).  (1=on, 0=off)  (overrides "far")

  • far — принудительное соотношение сторон (Force Aspect Ratio) — изображение будет создано в размере, указанном в «w» и «h» (оба из которых должны быть установлены). Выравнивание: L = слева, R = справа, T = сверху, B = снизу, C = по центру BL, BR, TL, TR используйте соответствующее направление, если изображение является альбомным или портретным.

  • dpi — точек на дюйм (Dots Per Inch): настройка DPI при импорте из векторного формата изображения, такого как PDF, WMF и т. д.

  • sia — сохранить как (Save Image As): имя файла задающееся по умолчанию для сохранения сгенерированного изображения. Укажите базовое имя файла, а расширение (например: ".png") будет добавлено автоматически.

  • maxb — (MAXimum Byte size) — качество итогового изображения автоматически устанавливается так, чтобы миниатюра помещалась в байты «maxb» (качество сжатия настраивается для JPEG, глубина в битах настраивается для PNG и GIF).

  • down — имя файла для сохранения изображения. Если этот параметр установлен, браузер предложит сохранить это имя файла, прежде чем отобразить изображение.

Устаревшие:

  • file — если установлено, миниатюра будет отображаться в это имя файла, а не выводиться и не кэшироваться. (Устаревшее. По умолчанию отключено начиная с v1.6.0, недоступно в v1.7.5 и более поздних версиях. Вместо этого вы должны создать свой собственный объект). 

  • goto — URL-адрес для перенаправления после рендеринга изображения в файл * Должен начинаться с "http: //" * Требуется набор параметров файла (устарело. Отключено по умолчанию начиная с версии 1.6.0, недоступно в версии 1.7.5 и более поздних. Вместо этого следует создать собственный объект).

  • err — пользовательское имя файла с изображением ошибки вместо того, чтобы показывать сообщения об ошибках (устарело. Отключено по умолчанию начиная с версии 1.6.0, недоступно в версии 1.7.5 и более поздних. Вместо этого следует создать экземпляр собственного объекта).