Зміст
Вступ
PHP надає можливість створити й опрацювати файли зображень, виводити зображення безпосередньо у браузер. Для цього необхідно скомпілювати PHP з графічною бібліотекою GD, що містить функції для роботи з зображеннями. Щоб читати мета-дані зображень, необхідний модуль EXIF.
Примітка. При встановленні XAMP / PHP (щонайменше, починаючи з версії 8.0.2) вбудовану бібліотеку GD буде встановлено без будь-яких дій з боку користувача.
Формати, підтримувані бібліотекою GD
Формат | Читання | Запис |
---|---|---|
JPEG | так | так |
PNG | так | так |
GIF | так | так |
XBM | так | так |
XPM | так | ні |
WBMP | так | так |
WebP | так | так |
BMP | так | так |
Запис BMP — з GD 2.1.0 і PHP 7.2.0. Вичерпний перелік підтримуваних форматів можна встановити за допомогою функції gd_info.
Встановлення
Щоб включити підтримку GD, PHP налаштовують з опцією --with-gd [= DIR], де DIR — тека встановлення GD. Її не вказують при використанні рекомендованої розробниками вбудованої версії бібліотеки GD.
Бібліотека GD вимагає наявність бібліотек libpng і libjpeg для компіляції. Починаючи з PHP 7.4.0, --with-gd стає --enable-gd (чи потрібно взагалі включати модуль) і --with-external-gd (щоб вибрати використання зовнішнього libgd, а не вбудованого).
При ОС Windows потрібно включити модуль php_gd2.dll в php.ini.
Підвищити можливості бібліотеки GD для роботи з великою кількістю форматів зображень можна, використовуючи опцію --with-XXXX під час конфігурування PHP.
Опції при конфігуруванні (починаючи з PHP 7.4.0)
Примітка. При компіляції PHP з libpng потрібно використовувати ту саму версію libpng, з якої була зібрана бібліотека GD.
Підвищити можливості бібліотеки GD для роботи з різними шрифтами можна, використовуючи опцію --with-XXXX під час конфігурації PHP.
Опції при конфігуруванні шрифтів (починаючи з PHP 7.2.0)
Вбудовані сталі
Досяжні лише у випадку, якщо PHP було зібрано з підтримкою розширення GD або при його довантаженні під час виконання.
IMG_BMP, IMG_GIF, IMG_JPG, IMG_JPEG, IMG_PNG, IMG_WBMP, IMG_XPM, IMG_WEBP (int) — використовують як значення, повернуті функцією imagetype;
IMG_COLOR_TILED, IMG_COLOR_STYLED, IMG_COLOR_BRUSHED, IMG_COLOR_STYLEDBRUSHED, IMG_COLOR_TRANSPARENT — спеціальні варіанти кольорів, які можна використати замість певних за допомогою функцій imagecolorallocate і imagecolorallocatealpha;
IMG_AFFINE_TRANSLATE, IMG_AFFINE_SCALE, IMG_AFFINE_ROTATE, IMG_AFFINE_SHEAR_HORIZONTAL, IMG_AFFINE_SHEAR_VERTICAL (int) — стала типу афінного перетворення, яку використовують з функцією imageaffinematrixget;
IMG_ARC_ROUNDED, IMG_ARC_PIE, IMG_ARC_CHORD, IMG_ARC_NOFILL, IMG_ARC_EDGED (int) — стала стилю, яку використовують з функцією imagefilledarc;
IMG_GD2_RAW, IMG_GD2_COMPRESSED (int) — стала типу, яку використовують з функцією imagegd2;
IMG_EFFECT_REPLACE, IMG_EFFECT_ALPHABLEND, IMG_EFFECT_NORMAL, IMG_EFFECT_OVERLAY, IMG_EFFECT_MULTIPLY — ефект альфа-змішування, використовують з функцією imagelayereffect;
IMG_FILTER_NEGATE, IMG_FILTER_GRAYSCALE, IMG_FILTER_BRIGHTNESS, IMG_FILTER_CONTRAST, IMG_FILTER_COLORIZE, IMG_FILTER_EDGEDETECT, IMG_FILTER_GAUSSIAN_BLUR, IMG_FILTER_SELECTIVE_BLUR, IMG_FILTER_EMBOSS, IMG_FILTER_MEAN_REMOVAL, IMG_FILTER_SMOOTH, IMG_FILTER_PIXELATE, IMG_FILTER_SCATTER (int) — спеціальний фільтр GD, використовують з функцією imagefilter;
IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_JPEG2000, IMAGETYPE_PNG, IMAGETYPE_SWF, IMAGETYPE_PSD, IMAGETYPE_BMP, IMAGETYPE_WBMP, IMAGETYPE_XBM, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM, IMAGETYPE_IFF, IMAGETYPE_JB2, IMAGETYPE_JPC, IMAGETYPE_JP2, IMAGETYPE_JPX, IMAGETYPE_SWC, IMAGETYPE_ICO, IMAGETYPE_WEBP (int) — стала типу зображення, використовують з функціями image_type_to_mime_type та image_type_to_extension;
PNG_NO_FILTER, PNG_FILTER_NONE, PNG_FILTER_SUB, PNG_FILTER_UP, PNG_FILTER_AVG, PNG_FILTER_PAETH, PNG_ALL_FILTERS (int) — спеціальний PNG фільтр, використовують з функцією imagepng;
IMG_FLIP_VERTICAL, IMG_FLIP_HORIZONTAL, IMG_FLIP_BOTH (int) — використовують з функцією imageflip;
IMG_BESSEL, IMG_BILINEAR_FIXED, IMG_BICUBIC_FIXED, IMG_BICUBIC, IMG_BLACKMAN, IMG_BOX, IMG_BSPLINE, IMG_CATMULLROM, IMG_GAUSSIAN, IMG_GENERALIZED_CUBIC, IMG_HERMITE, IMG_HAMMING, IMG_HANNING, IMG_MITCHELL, IMG_POWER, IMG_QUADRATIC, IMG_SINC, IMG_NEAREST_NEIGHBOUR, IMG_WEIGHTED4, IMG_TRIANGLE (int) — використовують з функцією imagesetinterpolation.
Вбудовані функції
Примітка. Якщо не записано інше, у разі помилки функція повертає false, інакше — true. Коли говорять про колір, мають на увазі значення функції imagecolorallocate.
Array ( [GD Version] => bundled (2.1.0 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [GIF Read Support] => 1 [GIF Create Support] => 1 [JPEG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => [XBM Support] => 1 [WebP Support] => [BMP Support] => 1 [TGA Read Support] => 1 [JIS-mapped Japanese Font Support] => )
Тут відсутність значення після => означає значення false.
getimagesize($f, $i) — повертає масив 7 елементів з даними про файл з назвою $f у такому порядку:
Необов'язковий аргумент $i використовують для виведення деяких розширених даних про файл JFIF. Наразі можна отримати різні маркери JPG APP у вигляді асоціативного масиву.
getimagesizefromstring($s, $i) — діє так само, як getimagesize, але аргумент $s — це рядок, у який перетворено файл. Наприклад, функцією file_get_contents.
image_type_to_extension ($i, $dot) — повертає рядок розширення файлу для вказаної сталої IMAGETYPE_XXX (перший аргумент). Другий булевий аргумент вказує, чи долучати крапку до розширення, чи ні (як усталено, значення true).
image_type_to_mime_type ($i) — повертає рядок — тип MIME для $i — сталої IMAGETYPE_XXX.
Аргумент | Значення |
---|---|
IMAGETYPE_GIF | image/gif |
IMAGETYPE_JPEG | image/jpeg |
IMAGETYPE_PNG | image/png |
IMAGETYPE_SWF | application/x-shockwave-flash |
IMAGETYPE_PSD | image/psd |
IMAGETYPE_BMP | image/bmp |
IMAGETYPE_TIFF_II | image/tiff |
IMAGETYPE_TIFF_MM | image/tiff |
IMAGETYPE_JPC | application/octet-stream |
IMAGETYPE_JP2 | image/jp2 |
IMAGETYPE_JPX | application/octet-stream |
IMAGETYPE_JB2 | application/octet-stream |
IMAGETYPE_SWC | application/x-shockwave-flash |
IMAGETYPE_IFF | image/iff |
IMAGETYPE_WBMP | image/vnd.wap.wbmp |
IMAGETYPE_XBM | image/xbm |
IMAGETYPE_ICO | image/vnd.microsoft.icon |
IMAGETYPE_WEBP | image/webp |
imageaffine ($image, $affine, $clip) — повертає афінно-перетворене зображення для таких аргументів:
imageaffinematrixconcat ($m1, $m2) — повертає афінну матрицю — результат "склеювання" (конкатенацію) двох афінних матриць $m1 і $m2 — масивів з ключами від 0 до 5 і значеннями з рухомою крапкою.
imageaffinematrixget ($type, $options) — повертає матрицю афінного перетворення для $type — однієї зі сталих IMG_AFFINE_*:
якщо $type дорівнює IMG_AFFINE_TRANSLATE або IMG_AFFINE_SCALE, $options має бути масивом з ключами 'x' і 'y' і значеннями типу float;
imagealphablending ($image, $blendmode) — дозволяє використовувати режим сполучення кольорів для зображень truecolor при малюванні. У режимі сполучення альфа компонент кольору, який передається всім функціям малювання, визначає те, наскільки сильно колір нижчого шару буде просочуватися через накладувані зображення. GD автоматично сполучає наявний колір у кожній точці з кольором намальованого поверх зображення і зберігає результат сполучення. Пікселі, які зазнали сполученню, не мають властивості прозорості. У режимі без сполучення колір намальованого над зображенням пікселя буквально копіюється разом зі своєю альфа складовою, замінюючи піксель в оригінальному документі.
Аргументи функції такі:
$image — ресурс зображення, повернений однією з функцій створення зображення, наприклад, imagecreatetruecolor;
blendmode — булевий вираз, що вказує на те, вмикати режим сполучення чи ні. Як усталено, режим увімкнено (значення true) для зображень truecolor, для всіх інших — вимкнено (false).
Повертає true у випадку успішного завершення або false у разі виникнення помилки.
imageantialias($image,$enabled) — задає згладжування при малюванні ліній і багатокутників. Не підтримує альфа компоненти. Використовує операції прямого змішування кольорів. Працює лише з truecolor-зображеннями. Стилі й товщину не підтримує. Використання згладжених примітивів спільно з прозорим тлом фоном може дати несподіваний результат. Метод змішування використовує колір тла нарівні з будь-яким іншим кольором. Відсутність підтримки альфа компоненти не дозволяє застосовувати заснований на ньому метод згладжування.
Аргументи функції такі:
$image — ресурс зображення, повернений однією з функцій створення зображення, наприклад, imagecreatetruecolor;
$enabled — булевий вираз, що вказує на те, вмикати згладжування чи ні.
Повертає true у випадку успішного завершення або false у разі виникнення помилки.
imagearc ($image, $x, $y, $w, $h, $start, $end, $color) — малює дугу кола:
Кутовий аргумент вимірюють за напрямком руху годинникової стрілки, 0° відповідає напрямку праворуч.
imagebmp($image, $to, $compressed) — виводить або зберігає BMP-версію заданого зображення:
$image — ресурс зображення, повернений однією з функцій створення зображення, наприклад, imagecreatetruecolor;
$to — шлях або відкритий потоковий ресурс для збереження файлу. Якщо не встановлено або дорівнює null, зображення буде виведено у потік виведення в бінарному вигляді;
$compressed — булева змінна — чи повинен BMP бути стиснутим з кодуванням довжин серій (RLE), чи ні.
imagechar ($image, $font, $x, $y, $c, $color) — виводить по горизонталі перший символ рядка $c на зображенні з назвою $image у точку з координатами $x, $y кольору $color, створеного функцією imagecolorallocate. Аргумент $font може набувати значень 1, 2, 3, 4, 5 для вбудованих шрифтів в кодуванні latin2 (більше значення відповідає більшому розміру) або будь-якого з власних назв шрифтів, зареєстрованих за допомогою imageloadfont.
imagecharup ($image, $font, $x, $y, $c, $color) — виводить по вертикалі перший символ рядка $c на зображенні з назвою $image у точку з координатами $x, $y кольору $color, створеного функцією imagecolorallocate. Аргумент $font може набувати значень 1, 2, 3, 4, 5 для вбудованих шрифтів в кодуванні latin2 (більше значення відповідає більшому розміру) або будь-якого з власних назв шрифтів, зареєстрованих за допомогою imageloadfont.
imagecolorallocate ($image, $r, $g, $b) — повертає колір (тип int) моделі RGB для вказаних інтенсивностей червоного ($r), зеленого ($g) і блакитного ($b) кольорів. Інтенсивності можуть набувати або цілочисельних значень у діапазоні від 0 до 255 включно, або шістнадцяткових у діапазоні від 0x00 до 0xFF включно. $image — ресурс зображення, повернений однією з функцій створення зображення, наприклад, imagecreatetruecolor.
imagecolorallocatealpha ($image, $r, $g, $b, $alpha) — повертає колір (тип int) моделі RGB для вказаних інтенсивностей червоного ($r), зеленого ($g), блакитного ($b) кольорів і альфа-каналу (прозорість $alpha). Інтенсивності можуть набувати або цілочисельних значень у діапазоні від 0 до 255 включно, або шістнадцяткових у діапазоні від 0x00 до 0xFF включно. $alpha може набувати значення у діапазоні від 0 до 127: 0 означає непрозорість, 127 означає повну прозорість. $image — ресурс зображення, повернений однією з функцій створення зображення, наприклад, imagecreatetruecolor.
imagecolorat ($image, $x, $y) — повертає номер кольору пікселя з координатами $x, $y на зображенні $image. Якщо передають truecolor-зображення, функція повертає цілочисельне RGB значення. Для виділення окремих складових червоного, зеленого або синього каналів використовують бітовий зсув і маскування. $image — ресурс зображення, повернений однією з функцій створення зображення, наприклад, imagecreatetruecolor.
imagecolorclosest ($image, $r, $g, $b) — повертає індекс кольору у палітрі зображення $image, "найближчого" до заданого RGB значення ($r, $g, $b). Відстань між кольорами у палітрі розраховують як звичайну евклідову відстань у тривимірному просторі, точки якого задано координатами ($r, $g, $b). Параметри кольору можуть бути або цілочисельними в діапазоні від 0 до 255 включно, або 16-ковими у діапазоні від 0x00 до 0xFF включно.
imagecolorclosestalpha ($image, $r, $g, $b, $a) — повертає індекс кольору у палітрі зображення $image, "найближчого" до заданого RGB значення ($r, $g, $b) і рівня альфа каналу. Відстань між кольорами у палітрі розраховують як звичайну евклідову відстань у тривимірному просторі, точки якого задано координатами ($r, $g, $b). Параметри кольору можуть бути або цілочисельними в діапазоні від 0 до 255 включно, або 16-ковими у діапазоні від 0x00 до 0xFF включно. $a може набувати значень у діапазоні від 0 до 127 включно: 0 означає непрозорість, 127 означає абсолютну прозорість.
imagecolordeallocate ($image, $c) — розриває для зображення $image поєднання змінної $c з кольором, яке раніше була створена функціями imagecolorallocate або imagecolorallocatealpha.
imagecolorexact ($image, $r, $g, $b) — повертає індекс для заданого у моделі RGB кольору ($r, $g, $b) у палітрі зображення $image або –1, якщо такого кольору у палітрі немає. Якщо зображення було створено з файлу, то будуть розпізнані лише кольору, використані в зображенні. Кольори, використані лише в палітрі, розпізнані не будуть.
imagecolorexactalpha ($image, $r, $g, $b, $a) — повертає індекс для заданого у моделі RGB кольору ($r, $g, $b) і прозорості $a або –1, якщо такого кольору в палітрі немає. Значення прозорості $a лежить у діапазоні від 0 до 127 включно: 0 означає непрозорість, 127 означає абсолютну прозорість. Параметри кольору $r, $g, $b можуть бути або цілочисельними у діапазоні від 0 до 255 включно, або 16-ковими у діапазоні від 0x00 до 0xFF включно.
imagecolormatch ($img1, $img2) — робить кольори палітровой версії зображення відповіднішими truecolor версії. Зображення $img2 — того самого розміру, що й $img1.
imagecolorresolve ($image, $r, $g, $b) — повертає ідентифікатор кольору для обраного кольору ($r, $g, $b) моделі RGB або найближчу можливу його альтернативу. Якщо зображення було створено з файлу, то буде розпізнано лише кольори, використані у зображенні. Кольори, які використані лише у палітрі, розпізнано не буде.
imagecolorresolvealpha ($image, $r, $g, $b, $a) — повертає ідентифікатор кольору для обраного кольору ($r, $g, $b) моделі RGB і прозорість $a або найближчу можливу альтернативу. Значення $a — у діапазоні від 0 до 127 включно: 0 означає непрозорість, 127 означає абсолютну прозорість. Параметри кольору можуть бути або цілочисельними у діапазоні від 0 до 255, або 16-ковими у діапазоні від 0x00 до 0xFF включно.
imagecolorset ($image, $i, $r, $g, $b, $a) — встановлює відповідність індексу $i у палітрі зображення $image заданому кольору ($r, $g, $b) моделі RGB з прозорістю Sa.
imagecolorsforindex ($image, $i) — повертає асоціативний масив з червоним, зеленим, синім і альфа ключами кольору зображення $image, що відповідає індексу $i.
imagecolorstotal($image) — повертає кількість кольорів у палітрі зображення $image.
imagecolortransparent ($image)
imagecolortransparent ($image, $c) — встановлює прозорість кольору $c в зображенні $image. Повертає ідентифікатор нового (або поточного, якщо нічого не змінилося) кольору. Якщо індекс кольору $c не задано і в зображенні немає прозорих кольорів, повертає –1.
imageconvolution($image, $m, $d, $offset) — викривлює зображення $image згідно з даними матриці $m (масив з 3 масивів по 3 значення з рухомою крапкою в кожному), нормуючого дільника $d s зміщення кольру $offset.
imagecopy ($im, $im0, $x, $y, $x0, $y0, $w, $h) — копіює частину зображення $im0 ширини $w і висоти $h з верхнім лівим кутом у точці з координатами $x0, $y0 і розташовує у зображення $im у точку з координатами ($x, $y).
imagecopymerge (im, $im0, $x, $y, $x0, $y0, $w, $h, $p) — копіює частину зображення $im0 ширини $w і висоти $h з верхнім лівим кутом у точці з координатами $x0, $y0 і розташовує у зображення $im у точку з координатами ($x, $y). Результат поєднання зображень залежить від значення параметра $p, що має набувати значень від 0 до 100 включно. При нульовому значенні накладення не буде. При значенні 100 ця функція поводиться аналогічно функції imagecopy палітрових зображень, незважаючи на те, що вона підтримує прозорість для truecolor-зображень.
imagecopymergegray ($im, $im0, $x, $y, $x0, $y0, $w, $h, $p) — копіює частину зображення $im0 ширини $w і висоти $h з верхнім лівим кутом у точці з координатами $x0, $y0 і розташовує у зображення $im у точку з координатами ($x, $y). Функція працює аналогічно imagecopymerge за винятком того, що при накладенні вона зберігає насиченість кольору вихідного зображення шляхом перетворення кольорів пікселів кінцевого зображення у градації сірого перед копіюванням: нульове значенні $p означає відсутність всіх кольорів крім сірого, значення 100 — зображення не буде зміно. У цьому випадку поведінка функції ідентична imagecopy для палітрових зображень, незважаючи на те, що в цій функції реалізовано прозорість для truecolor-зображень.
imagecopyresampled ($im, $im0, $x, $y, $x0, $y0, $w, $h, $w0, $h0) — бере копію прямокутної ділянки зображення $im0 з шириною $w0 і $h0 та лівим верхнім кутом у точці з координатами $x0, $y0 і поміщає його у прямокутну ділянку зображення $im шириною $w і висотою $h у точку (лівий верхній кут) з координатами ($x, $y).
imagecopyresized ($im, $im0, $x, $y, $x0, $y0, $w, $h, $w0, $h0) — бере копію прямокутної ділянки зображення $im0 з шириною $w0 і $h0 та лівим верхнім кутом у точці з координатами $x0, $y0 і поміщає його у прямокутну ділянку зображення $im шириною $w і висотою $h у точку (лівий верхній кут) з координатами ($x, $y).
imagecreate ($w, $h) — повертає порожнє зображення ширини $w і висоти $h. Рекомендують використовувати функцію imagecreatetruecolor замість imagecreate, бо вона опрацьовує зображення з максимально можливою якістю. Якщо необхідно вивести палітру зображення, то imagetruecolortopalette необхідно викликати безпосередньо перед збереженням зображення за допомогою imagepng або imagegif.
imagecreatefrombmp ($file) — повертає зображення, отримане з файлу типу bmp з назвою $file. Можна використати URL, якщо було увімкнено опцію fopen wrappers). У разі помилки повертає false.
imagecreatefromgd2 ($file) — повертає зображення, отримане з файлу GD2 з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false.
imagecreatefromgd2part ($file, $x, $y, $w, $h) — повертає зображення, отримане з частини файлу GD2 з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false. Тут ($x, $y) — координати верхнього лівого кута частини, $w — її ширина, $h — її висота.
imagecreatefromgd ($file) — повертає зображення, отримане з файлу GD з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false.
imagecreatefromgif ($file) — повертає зображення, отримане з файлу gif з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false. При використанні анімованих файлів gif буде використано лише перший фрейм. Розмір зображення не обов'язково буде відповідає тому, що поверне функція getimagesize.
imagecreatefromjpeg ($file) — повертає зображення, отримане з файлу jpeg з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false.
imagecreatefrompng ($file) — повертає зображення, отримане з файлу png з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false.
imagecreatefromstring ($image) — повертає зображення, отримане з потоку $image. Тип буде автоматично визначено, якщо збірка PHP його підтримує: JPEG, PNG, GIF, BMP, WBMP, GD2 і WEBP.
imagecreatefromwbmp ($file) — повертає зображення, отримане з файлу wbmp (Wireless Bitmaps) з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false.
imagecreatefromwebp ($file) — повертає зображення, отримане з файлу webp з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false.
imagecreatefromxbm ($file) — повертає зображення, отримане з файлу xbm з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false.
imagecreatefromxpm ($file) — повертає зображення, отримане з файлу xpm з назвою $file. Можна використати URL, якщо було увікнено опцію fopen wrappers. У разі помилки повертає false.
imagecreatetruecolor ($w, $h) — повертає новостворене повнокольорове зображення (чорне тло) ширини $w і висоти $h. У разі помилки повертає false.
imagecrop ($image, $r) — повертає зображення — результат вирізання прямокутної області зображення $image, яке залишається без змін. Область задаюит асоціативним масивом $r з ключами x, y, width і height.
imagecropauto ($image, $mode, $t, $c) — повертає зображення — результат вирізання відповідно до значення $mode, що може набувати значення однієї з таких вбудованих сталих:
Аргумент $t визначає допуск (0.5 — значення як усталено) при порівнянні кольору зображення і кольору обрізання. Для розрахунку різниці кольорів використовують відстань моделі RGB у кубі.
Аргумент $c визначає значення кольору RGB або індекс палітри. Аргументи $t i $c використовують лише при режимі IMG_CROP_THRESHOLD.
Повертає false у разі виникнення помилки. Якщо повне зображення було обрізано, imagecrop повертає false.
imagedashedline ($image, $x1, $y1, $x2, $y2, $c) — малює пунктирну лінію на зображенні $image:
imagedestroy($image) — звільняє пам'ять, зайняту зображенням $image.
imageellipse ($image, $x, $y, $w, $h, $c) — малює еліпс на зображенні $image:
imagefill ($image, $x, $y, $c) — заповнює зображення $image кольором $c, починаючи з точки з координатами ($x, $y).
imagefilledarc ($image, $x, $y, $w, $h, $f0, $f1, $color, $style) — малює на зображенні $image дугу еліпса:
imagefilledellipse ($image, $x, $y, $w, $h, $c) — малює на зображенні $image зафарбований еліпс:
imagefilledpolygon ($image, $p, $n, $c)
imagefilledpolygon ($image, $p, $c) — малює на зображенні $image зафарбований багатокутник:
$p — лінійний (одновимірний) масив, що містить координати послідовних вершин багатокутника;
$n — кількість вершин, що не менша від 3. Якщо цей параметр не вказано, масив $p повинен містити парну кількість елементів, і $n буде обчислено як половина елементів $p;
$c — колір, створений функцією imagecolorallocate.
imagefilledrectangle ($image, $x1, $y1, $x2, $y2, $c) — малює на зображенні $image зафарбований кольором $c прямокутник з протилежними вершинами у точках ($x1, $y1) і ($x2, $y2).
imagefilltoborder ($image, $x, $y, $b, $c) — заповнює кольором $c область зображення $image, обмежену кольором $b, починаючи з точки з координатами ($x, $y).
imagefilter ($image, $f, $a1, $a2, $a3, $a4) — застосовує до зображення $image фільтр $f, що може набувати значень таких сталих:
IMG_FILTER_NEGATE — інвертує всі кольори зображення;
IMG_FILTER_GRAYSCALE — перетворює кольори зображення у відтінки сірого шляхом перетворення компонент червоного, зеленого і синього в їхню суму з урахуванням ваг, таких же як при обчисленні яскравості (Y ') по REC.601. Альфа-канал зберігається;
IMG_FILTER_BRIGHTNESS — змінює яскравість зображення (див. опис аргумента $a1 для задання рівня яскравості) у проміжку від -255 до 255;
IMG_FILTER_CONTRAST — змінює контрастність зображення (див. опис аргумента $a1 для задання рівня контрастності);
IMG_FILTER_COLORIZE — те саме, що й IMG_FILTER_GRAYSCALE, за винятком того, що можна задати колір. У цьому випадку використовують аргументи $a1, $a2 і $a3 для вказівки каналів червоного, зеленого і блакитного, а $a4 — для альфа каналу. Діапазон для кожного каналу кольору — від 0 до 255 включно;
IMG_FILTER_EDGEDETECT — використовує визначення меж для їх підсвічування;
IMG_FILTER_EMBOSS — додає рельєф;
IMG_FILTER_GAUSSIAN_BLUR — розмиває зображення за методом Гаусса;
IMG_FILTER_SELECTIVE_BLUR — розмиває зображення;
IMG_FILTER_MEAN_REMOVAL — використовує усереднення для досягнення ефекту "ескізу";
IMG_FILTER_SMOOTH — згладжує межі, робить їх плавнішими, а зображення менш чітким. Аргумент $a1 використовують для задання рівня гладкості;
IMG_FILTER_PIXELATE — застосовує ефект пікселювання. Аргумент $a1 використовують для завдання розміру блоку, аргумент $a2 — для завдання режиму ефекту пікселювання;
IMG_FILTER_SCATTER — застосовує ефект розсіювання. Значення $a1 і $a2 визначають сили ефекту, $a3 — для застосування лише до обраних кольорів пікселів.
imageflip ($image, $mode) — перевертає зображення $image, використовуючи вибраний режим $mode, що може набувати значення однієї зі сталих:
imagefontheight ($font) — повертає висоту у пікселах символу шрифту $font, що може набувати значень 1, 2, 3, 4, 5 для вбудованих шрифтів у кодуванні latin2 (більше число відповідає більшому розміру) або будь-якого з ідентифікаторів шрифтів, зареєстрованих за допомогою imageloadfont.
imagefontwidth ($font) — повертає ширину у пікселах символу шрифту $font, що може набувати значень 1, 2, 3, 4, 5 для вбудованих шрифтів у кодуванні latin2 (більше число відповідає більшому розміру) або будь-якого з ідентифікаторів шрифтів, зареєстрованих за допомогою imageloadfont.
imageftbbox ($size, $angle, $fontfile, $text, $extrainfo) — повертає межі FreeType тексту у вигляді масиву з 8 елементів — координат кутів рамки навколо тексту — з такими ключами:
Тут вказано розташування точок відносно тексту незалежно від кута $angle. Інакше кажучи, "верхній лівий кут" означає верхня ліва точка тексту при розташуванні тексту горизонтально зліва направо.
Це розширений варіант imagettfbbox, який додатково підтримує extrainfo. Має такі аргументи:
Примітка. Залежно від версії GD бібліотеки: якщо $fontfile починається не з /, то в кінець назви файлу буде додано розширення .ttf, і бібліотека буде намагатися знайти цей файл за адресою, визначеному в налаштуваннях бібліотеки.
У бібліотеці GD версії до 2.0.18 символ пробіл і крапка з комою є "роздільником шляхів" для різних файлів шрифтів. При використанні шляхів з цими символами можна отримати попередження про неможливість знайти / відкрити шрифт: "Warning: Could not find / open font".
imagefttext ($image, $size, $angle, $x, $y, $color, $fontfile, $text) — виводить у зображення $image рядок тексту $text з індексом кольору $color під кут нахилу $angle (у градусах) з точки (лівий нижній кут першого символу) з координатами ($x, $y). $fontfile — шлях до шрифту TrueType, який потрібно використовувати.
Примітка. Залежно від версії GD бібліотеки: якщо $fontfile починається не з /, то в кінець назви файлу буде додано розширення .ttf, і бібліотека буде намагатися знайти цей файл за адресою, визначеному в налаштуваннях бібліотеки.
У бібліотеці GD версії до 2.0.18 символ пробіл і крапка з комою є "роздільником шляхів" для різних файлів шрифтів. При використанні шляхів з цими символами можна отримати попередження про неможливість знайти / відкрити шрифт: "Warning: Could not find / open font".
imagegammacorrect ($image, $in, $out) — застосовує гамма корекцію до зображення image згідно із заданими вхідним ($in) і вихідним ($out) налаштуваннями гами — числами з рухомою крапкою.
imagegd2 ($image, $f, $size, $type) — виводить зображення у файл GD2 з назвою $f. Якщо його не встановлено або надано значення null (як усталено), зображення буде виведено у потік виведення у бінарному вигляді. $size — розмір частини зображення, $type — значення однієї із сталих: IMG_GD2_RAW або IMG_GD2_COMPRESSED, як усталено — IMG_GD2_RAW. Повертає true у випадку успішного завершення або false у разі виникнення помилки. Але, якщо libgd не може вивести зображення, ця функція поверне true.
imagegd ($image, $f) — виводить зображення у файл GD2 з назвою $f. Якщо його не встановлено або надано значення null (як усталено), зображення буде виведено у потік виведення у бінарному вигляді. Повертає true у випадку успішного завершення або false у разі виникнення помилки. Але, якщо libgd не може вивести зображення, ця функція поверне true.
imagegetclip ($image) — для зображення $image повертає масив координат вершин поточного прямокутника відтинання, тобто області, за межами якої не буде відмальовано пікселі. Елементи масиву у порядку зростання цілого ключа:
imagegetinterpolation ($image) — отримує ціле число — поточний встановлений метод інтерполяції зображення $image.
imagegif ($image, $f) — створює із зображення $image файл GIF $f або відкритий потоковий ресурс (який автоматично закривається після завершення дії функції). Якщо $f не встановлено або дорівнює null (як усталено), зображення буде виведено у потік виводу у бінарному вигляді. Файл же матиме формат GIF87a, якщо зображення не було зроблено прозорим функцією imagecolortransparent. Інакше він матиме формат GIF89a.
imagegrabscreen — повертає зображення, створене з копії екрану монітора. Функція досяжна лише у Windows.
imagegrabwindow ($window, $client) — повертає зображення, створене з копії вікна або його клієнтської частини, використовуючи Wwindows обробник (властивість HWND COM об'єкта). Функція доступна лише при ОС Windows. Аргументи:
imageinterlace ($image, $i) — встановлює (змінює) стан $i переплітання (interlace bit) для зображення $image. Після встановлення значення $i, відмінного від 0, при завантаженні зображення як JPEG буде створено JPEG у прогресивному форматі. Такий формат надає можливість браузеру завантажувати зображення поступово, постійно відображаючи це зображення зі зростанням якості від 0 до 100%. Повертає 1, якщо стан $i переплітання встановлено, інакше — 0.
imageistruecolor ($image) — повертає true, якщо зображення $image є повнокольоровим, інакше повертає false.
imagejpeg ($image, $f, $q) — створює файл JPEG із зображення $image:
$f — шлях або відкритий потоковий ресурс (який автоматично закривається після завершення дії функції), для збереження файлу. Якщо не встановлено або дорівнює null, зображення буде виведено у потік виводу у бінарному вигляді;
$q — необов'язковий параметр. Може набувати значення у проміжку від 0 (низька якість, маленький розмір файлу) до 100 (висока якість, великий розмір файлу). Як усталено -1, що означає якість IJG — близько 75.
Повертає true у випадку успішного завершення, false — у разі виникнення помилки. Але, якщо libgd не може вивести зображення, ця функція поверне true.
imagelayereffect ($image, $e) — встановлення прапора альфа каналу для зображення $image при використання ефектів накладення зображень. $e може набувати значення однієї з таких сталих:
IMG_EFFECT_REPLACE — використовувати заміну пікселів (аналогічно передачі true в imagealphablending);
IMG_EFFECT_ALPHABLEND — використовувати звичайне поєднання кольорів (аналогічно передачі false в imagealphablending);
IMG_EFFECT_NORMAL — те саме, що й IMG_EFFECT_ALPHABLEND;
IMG_EFFECT_OVERLAY — чорні й білі пікселі тла зображення залишаються такими самими чорними й білими, а сірі змінюють колір на колір пікселя накладуваного зображення;
IMG_EFFECT_MULTIPLY — накладування з ефектом множення.
imageline ($image, $x1, $y1, $x2, $y2, $c) — на зображенні $image малює відрізок прямої кольору $c, що сполучає точки з координатами ($x1, $y1) і ($x2, $y2).
imageloadfont($f) — завантажує шрифт, шлях до якого задано рядком $f, і повертає його ідентифікатор або false у разі помилки. Цей ідентифікатор шрифту завжди перевищує 5 для запобігання конфліктів зі вбудованими шрифтами. Формат файлу шрифту двійковий і залежить від архітектури системи. Останнє означає необхідність породжувати файл шрифту на тому самому процесорі, на якому працює PHP.
Позиція байта | Тип даних С | Опис |
---|---|---|
0‒3 | int | кількість символів у шрифті |
4‒7 | int | значення першого символу у шрифті (часто 32 — пробіл) |
8‒11 | int | ширина символу у пікселях |
12‒15 | int | висота символу у пікселях |
16‒… | char | масив з даними символів, байт на піксель у кожному символі |
Примітка. На жаль, упоряднику тексту не вдалося виявити у глобальній мережі шрифтів gdf, які надають можливість пряцювати з кирилічними літерами. Виявлені програми для перетворення ttf → gdf також не працюють коректно з кирилічними літерами. У цьому випадку при роботі з кирилицею залишається працювати з функцією imagefttext.
imageopenpolygon ($image, $p, $n, $c)
imageopenpolygon ($image, $p, $c) — на зображенні $image малює незамкнену ламану лінію, координати послідовних вершин якої задано у масиві $p: з парними індексами — абсциси, з непарними — ординати. Тут $n — кількість вершин, що не менша ніж 3, $c — колір лінії.
imagepalettecopy ($im0, $im1) — копіює палітру кольорів із зображення $im0 у зображення $im1.
imagepalettetotruecolor($image) — перетворює зображення $image, створене на основі палітри функцією, такою як imagecreate, до справжнього (true) кольору зображення, як при використанні imagecreatetruecolor.
imagepng($image, $to, $q, $f) — виводить або зберігає PNG зображення $image:
$to — шлях або відкритий потоковий ресурс (який автоматично закривається після завершення функції), для збереження файлу. Якщо не встановлено або дорівнює null, зображення буде виведено у потік виводу у бінарному вигляді. Неприпустимо передавати null, якщо не використано аргументи quality і filters;
$q — cтупінь стиснення: від 0 (немає стиснення) до 9. Як усталено (−1) використовують значення стискання як усталено для zlib;
$f — дозволяє зменшити розмір PNG файлу. Це бітова маска, значенням якої може бути комбінація сталих PNG_FILTER_XXX. Для включення або виключення всіх фільтрів зручно скористатися сталими PNG_NO_FILTER або PNG_ALL_FILTERS відповідно. Значення як усталено (−1) відключає фільтрацію.
imagepolygon ($image, $p, $n, $c)
imagepolygon ($image, $p, $c) — на зображенні $image малює багатокутник (замкнену ламану лінію). Координати послідовних вершин задано у масиві $p: з парними індексами — абсциси, з непарними — ординати, $n — кількість вершин, що не менша ніж 3, $c — колір лінії.
imagerectangle ($image, $x1, $y1, $x2, $y2, $c) — на зображенні $image малює прямокутник із заданими координатами кутів:
imageresolution ($image)
imageresolution ($image, $x, $y) — дозволяє встановити або отримати роздільну здатність у DPI (точки на дюйм). Якщо не вказано жоден з необов'язкових параметрів $x, $y, то буде повернуто поточну роздільну здатність зображення у вигляді індексованого масиву. Якщо вказано лише параметр $x, то це значення буде надано роздільним здатностям по горизонталі й вертикалі. Якщо вказано обидва необов'язкові параметри $x, $y, то ці значення буде надано роздільним здатностям по горизонталі й вертикалі. Роздільну здатність використовують лише як метадані під час читання або запису зображень у формати, які підтримують цей вид даних (на даний момент це PNG і JPEG). Це ніяк не впливає на будь-які операції малювання. Значання як усталено — 96 DPI.
imagerotate ($image, $a, $c, $d) — повертає зображення, створене із зображення $image, повернутого на кут $a (у градусах, число з рухомою крапкою) навколо центра зображення. Тут $c — колір вивільненої після повороту зони, $d — параметр який не використовують. Зображення може змінити розмір до розмірів прямокутника, що описує результат повороту.
imagesavealpha ($image, $save) — визначає, чи буде зберігатися повна інформація альфа-каналу (на противагу одноколірної прозорості) і зберігає PNG зображення. Щоб альфа-канал зберігався у першу чергу, альфа-змішування має бути відключеним такою вказівкою:
imagealphablending ($imаge, false);
Як усталено, $save=false — не зберігати інформацію.
imagescale ($image, $w, $h, $mode) — повертає результат масштабування зображення $image до ширини $w і висоти $h. Якщо $h не вказано або від'ємне, буде збережено співвідношення сторін. Алгоритм інтерполяції $mode може набувати значень однієї зі сталих: IMG_BILINEAR_FIXED (як усталено), IMG_NEAREST_NEIGHBOUR, IMG_BICUBIC, IMG_BICUBIC_FIXED або що-небудь ще (буде використано два проходи). IMG_WEIGHTED4 поки ще не підтримується.
imagesetbrush ($image, $b) — задає зображення $b, яке буде використано для малювання ліній (функціями imageline і imagepolygon) при використанні кольорів IMG_COLOR_BRUSHED або IMG_COLOR_STYLEDBRUSHED.
Примітка. Після завершення роботи з пензлем не потрібно вчиняти жодних додаткових дій. Але після знищення зображення пензля не можна користуватися кольорами IMG_COLOR_BRUSHED або IMG_COLOR_STYLEDBRUSHED, поки не буде встановлено нове зображення пензля.
imagesetclip ($image, $x1, $y1, $x2, $y2) — задає прямокутник, за межами якого не буде відображено пікселі зображення $image:
imagesetinterpolation ($image, $m) — для зображення $image встановлює метод інтерполяції $m, що впливає на результат роботи функцій, наприклад, imagerotate. $m може набувати значення однієї з таких сталих:
Як усталено (також при створенні зображення) — IMG_BILINEAR_FIXED.
imagesetpixel ($image, $x, $y, $c) — на зображенні $image замальовує точку (піксель) з координатами ($x, $y) кольором $c.
imagesetstyle ($image, $s) — на зображенні $image задає стиль малювання ліній функціями imageline і imagepolygon при заданні кольору IMG_COLOR_STYLED або IMG_COLOR_STYLEDBRUSHED. Непорожній масив $s з кольорами пікселів задає послідовність кольорів на лінії. Для додавання прозорої точки використовують значення сталої IMG_COLOR_TRANSPARENT.
imagesetthickness ($image, $t) — на зображенні $image задає значення товщини ліній $t у пікселях.
imagesettile ($image, $t) — задає зображення $t, яке буде використано в якості елемента мозаїчного заповнення зображення $image такими функціями, як imagefill і imagefilledpolygon при використанні спеціального кольору IMG_COLOR_TILED. Якщо задати прозорий колір для цього зображення $t функцією imagecolortransparent, деякі частини нижчого зображення будуть просвічувати через створену мозаїку. Після завершення роботи з мозаїчним елементом жодних додаткових дій не потрібно. Але якщо це зображення буде видалено, не можна використовувати колір IMG_COLOR_TILED до тих пір, поки не буде задано нове зображення.
imagestring ($image, $font, $x, $y, $s, $c) — на зображенні $image виводить зліва направо рядок $s кольору $c шрифтом $font починаючи з верхнього лівого кута у точці ($x, $y). $font може набувати значення 1, 2, 3, 4, 5 для вбудованих шрифтів у кодуванні latin2 (більш високе число відповідає більшому розиіру) або ідентифікатору довільного іншого шрифту, зареєстрованого за допомогою imageloadfont.
imagestringup ($image, $font, $x, $y, $s, $c) — на зображенні $image виводить знизу догори рядок $s кольору $c шрифтом $font починаючи з нижнього лівого кута у точці ($x, $y). $font може набувати значення 1, 2, 3, 4, 5 для вбудованих шрифтів у кодуванні latin2 (більш високе число відповідає більшому розиіру) або ідентифікатору довільного іншого шрифту, зареєстрованого за допомогою imageloadfont.
imagesx ($image) — повертає ширину (у пікселях) зображення $image.
imagesy ($image) — повертає висоту (у пікселях) зображення $image.
imagetruecolortopalette ($image, $d, $n) — перетворює повнокольорове зображення у палітрове. Код цієї функції запозичено з коду бібліотеки Незалежної Групи JPEG. Код було модифіковано, щоб зберігати найбільше даних про альфа складові кольорів і передавати кольори якнайкраще. При $d = true зображення буде згладжено. Згладження спотворює зображення, але може забезпечити кращу передачу кольорів. Аргумен $n задає максимальну кількість кольорів у палітрі.
imagettfbbox ($pt, $a, $f, $t) — повертає межі FreeType тексту у вигляді масиву з 8 елементів — координат кутів рамки навколо тексту — з такими ключами:
Тут вказано розташування точок відносно тексту незалежно від кута $angle. Інакше кажучи, "верхній лівий кут" означає верхня ліва точка тексту при розташуванні тексту горизонтально зліва направо. Має такі аргументи:
Залежно від того, яку бібліотеку GD використовує PHP, якщо fontfile починається не з символу /, то до назви файлу буде додано .ttf. При використанні бібліотеки GD версії до 2.0.18, як роздільник шляхів для різних файлів шрифтів використовують пробіл, а не крапку з комою. Якщо шрифт розташовано у тій самій теці, що й скрипт PHP, допоможе такий код:
<?php putenv ( 'GDFONTPATH ='. realpath ( '.')); // Змінна середовища для GD $f = 'SomeFont'; // Назва шрифта без .ttf ?>
imagettftext ($image, $pt, $a, $x, $y, $c, $f, $t) — на зображенні $image виводить рядок тексту. Має такі аргументи:
Залежно від того, яку бібліотеку GD використовує PHP, якщо $f починається не з символу /, то до назви файлу буде додано .ttf. При використанні бібліотеки GD версії до 2.0.18, як роздільник шляхів для різних файлів шрифтів використовують пробіл, а не крапку з комою. Якщо шрифт розташовано у тій самій теці, що й скрипт PHP, допоможе такий код:
<?php putenv ( 'GDFONTPATH ='. realpath ( '.')); // Змінна середовища для GD $f = 'SomeFont'; // Назва шрифта без .ttf ?>
Повертає межі FreeType тексту у вигляді масиву з 8 елементів — координат кутів рамки навколо тексту — з такими ключами:
Кути вказано відносно тексту, тобто "верхній лівий" означає верхній лівий кут тексту, якщо розташувати його горизонтально.
imagetypes() — повертає бітове поле, що описує підтримку форматів зображень поточною версією GD у такому порядку: IMG_BMP, IMG_GIF, IMG_JPG, IMG_PNG, IMG_WBMP, IMG_XPM, IMG_WEBP. Наприклад, перевірку наявності підтримки формату png можна здійснити таким чином:
<?php if (imagetypes() & IMG_PNG) echo "Є підтримка PNG"; ?>
imagewbmp ($image, $to, $foreground) — виводить або зберігає у форматі WBMP зображення $image:
$to — шлях або відкритий потоковий ресурс (який автоматично закривається після завершення функції), для збереження файлу. Якщо не встановлено або дорівнює null, зображення буде виведено у потік виведення у бінарному вигляді;
$foreground — колір верхнього шару (як усталено — чорний).
imagewebp ($image, $to, $q) — виводить на екран або зберігає WebP-версію зображення $image:
$to — шлях або відкритий потоковий ресурс (який автоматично закривається після завершення функції), для збереження файлу. Якщо не встановлено або дорівнює null, зображення буде виведено у потік виведення у бінарному вигляді;
$q набуває значень від 0 (найгірша якість і найменший розмір файлу) до 100 (найкраща якість, найбільший файл).
imagexbm ($image, $to, $c) — виводить на екран або зберігає у форматі XBM зображення $image:
$to — шлях для збереження файлу. Якщо не встановлено, або дорівнює null, буде проведено виведення необробленого потоку зображення. Цей аргумент (без розширення .xbm) також використовують як ідентифікатор C XBM, при цьому символи, які не є у поточній локалі цифрами або літерами, замінюються на підкреслення. Якщо $to задано як null, $image буде використано для створення ідентифікатора C;
$c — колір верхнього шару (як усталено чориний). Всі інші кольори тлумачать як кольору підкладки (background).
iptcembed ($data, $f, $s) — включає двійкові IPTC дані $data у JPEG зображення, збережене у файлі $f. Якщо значення цілого аргумента $s перевищує 2, то JPEG буде повернуто у вигляді рядка, інакше буде виведено у STDOUT. Якщо $s менше 2, буде повернуто JPEG.
iptcparse ($data) — розбирає двійкові IPTC дані на окремі теги і повертає масив значень тегів, використовуючи мітки тегів в якості індексів. Повертає false в разі виникнення помилки, а також якщо IPTC дані відсутні.
Подано дані сторінки php.net/manual/ru/ref.image.php.