Функции графических изображений
PHP не ограничен только созданием HTML вывода. PHP может также использоваться для создания и управления различными форматами изображений, включая GIF, PNG, JPG, WBMP, и XPM. Для большего удобства, PHP может вывести потоки изображения непосредственно в браузер. Для того, чтобы использовать замечательную возможность создания изображения с помощью PHP, вам необходимо иметь библиотеку функций изображений GD. GD и PHP может также требовать других библиотек, в зависимости от того, с какими форматами изображений вы хотите работать.
Вы можете использовать функции изображений в PHP, чтобы получить возможность работать с JPEG, GIF, PNG, SWF, TIFF и изображениями JPEG2000.
Замечание:
Читайте раздел требований о том, как развернуть возможности читать изображения, сохранять, изменять изображения и читать мета данные изображений, представленных цифровыми камерами.
Если у вас есть библиотека GD (доступна на http://www.boutell.com/gd/) у вас появится возможность создания и манипулирования изображениями.
Формат изображений, которыми вы можете управлять, зависит от версии GD, который вы устанавливаете. Версии GD старше, чем gd-1.6 поддерживают формат GIF, и не поддерживают PNG, а версии больше чем gd-1.6 и меньше чем gd-2.0.28 поддерживают PNG, но не поддерживают GIF. Поддержка формата GIF вновь стала возможной в gd-2.0.28.
Замечание:
Для PHP, начиная с PHP 4.3, есть связанная версия GD lib. Эта связанная версия имеет некоторые дополнительные особенности подобно alpha blending, и должна использоваться в предпочтении к внешней библиотеке, так как ее код оптимизирован для PHP и более устойчив.
Вы можете захотеть расширить GD, чтобы иметь возможность работать с большим числом форматов изображений.
Таблица 1. Поддерживаемые форматы изображений
Вы можете желать расширить GD, чтобы иметь дело с различными шрифтами. Следующие библиотеки шрифта поддерживаются:
Таблица 2. Поддерживаемые библиотеки шрифтов
Если у вас есть PHP, скомпилированный с опцией --enable-exif
вы можете работать с информацией, содержащейся в заголовках
JPEG и TIFF изображений. Таким образом вы можете читать мета данные, генерируемые цифровыми фотокамерами. Эти функции не требуют библиотеки GD.
Для включения поддержки GD необходим PHP, сконфигурированный с опцией
--with-gd[=DIR], где DIR - это базовая директория GD. Для использоваеия рекомендованной связанной версии GD библиотеки (которая сначала поставлялась с PHP 4.3.0), используйте опцию конфигурации
--with-gd для компиляции.
GD требует libpng и
libjpeg при компиляции.
В Windows включите GD2 (php_gd2.dll) как расширение в php.ini. GD1 (php_gd.dll) была удалена из PHP 4.3.2. Также обратите внимание, что функции, использующие отображение truecolor (24 бита), например imagecreatetruecolor(), требуют библиотеки GD2.
Замечание:
Для включения поддержки exif в Windows, php_mbstring.dll должен быть загружен перед
php_exif.dll в php.ini.
Таблица 3. Поддерживаемые форматы изображений
Формат изображения |
Включение в конфигурации |
jpeg-6b |
Для включения поддержки jpeg-6b используйте
--with-jpeg-dir=DIR. |
png |
Для включения поддержки png используйте
--with-png-dir=DIR. Внимание, libpng
требует zlib library,
которая включается опцией --with-zlib-dir[=DIR]
при компиляции. |
xpm |
Для включения поддержки xpm используйте
--with-xpm-dir=DIR. Если выбор конфигурации не способен найти требуемые библиотеки, Вы можете прибавить путь к вашим библиотекам X11. |
Замечание:
Когда вы компилируете PHP с libpng, вы должны использовать одинаковые версии, связанные с библиотекой GD.
Расширьте возможности GD иметь дело с различными шрифтами, определяя --with-XXXX опции при компиляции PHP.
Таблица 4. Поддерживаемые библиотеки шрифтов
Библиотека шрифтов |
Включение в конфигурации |
FreeType 1.x |
Для включения поддержки FreeType 1.x используйте
--with-ttf[=DIR]. |
FreeType 2 |
Для включения поддержки FreeType 2 add
--with-freetype-dir=DIR. |
T1lib |
Для включения поддержки T1lib (Type 1 fonts) add
--with-t1lib[=DIR]. |
Родные строковые функции TrueType |
Для включения поддержки для родных строковых функций TrueType добавьте
--enable-gd-native-ttf. |
Нет никаких специфических директив для изображений, но, возможно, вы заинтересуетесь директивами
exif.
Данное расширение не определяет никакие типы ресурсов.
Перечисленные ниже константы определены данным расширением и могут быть
доступны только в том случае, если PHP был собран с
поддержкой этого расширения или же в том случае, если
данное расширение подгружается во время выполнения.
Пример 1. Создание PNG в PHP
<?php
header("Content-type: image/png"); $string = $_GET['text']; $im = imagecreatefrompng("images/button1.png"); $orange = imagecolorallocate($im, 220, 210, 60); $px = (imagesx($im) - 7.5 * strlen($string)) / 2; imagestring($im, 3, $px, 9, $string, $orange); imagepng($im); imagedestroy($im);
?>
|
|
Данные пример вызывается из страницы с тегом <img>, например: <img
src="button.php?text=text">. Приведенный выше скрипт, имеющий имя button.php, получает строку "text" из запроса и добавляет ее к базовой картинке (накладывает оверлейный слой), которая находится
в "images/button1.png"
и выводит результирующее изображение. Это - очень удобный способ нарисовать новую кнопку, отображаемую каждый раз, когда вы хотите изменить текст кнопки. Этот метод позволяет создавать изображения, генерируемые динамически.
Содержание
- gd_info -- Возвращает информацию о текущей установленной библиотеки GD
- getimagesize -- Получает размер изображения
- image_type_to_extension --
Получает расширение файла для типа изображения
- image_type_to_mime_type -- Получает тип Mime для типа изображения, возвращаемого getimagesize,
exif_read_data, exif_thumbnail, exif_imagetype
- image2wbmp -- Выводит изображение в браузер или в файл
- imagealphablending -- Устанавливает режим смешивания для изображения
- imageantialias --
Должны ли использоваться функции антиалиасинга или нет
- imagearc -- Рисует частичный эллипс
- imagechar -- Рисует знак горизонтально
- imagecharup -- Рисует знак вертикально
- imagecolorallocate -- Распределяет цвет для изображения
- imagecolorallocatealpha -- Распределяет цвет для изображения
- imagecolorat -- Получает индекс цвета пиксела
- imagecolorclosest -- Получает индекс самого близкого цвета к указанному цвету
- imagecolorclosestalpha -- Получает индекс самого близкого цвета к указанному цвету + альфу
- imagecolorclosesthwb --
Получает индекс цвета, который имеет оттенок, белый и темный, самый близкий к данному цвету
- imagecolordeallocate -- Освобождает цвет для изображения
- imagecolorexact -- Получает индекс указанного цвета
- imagecolorexactalpha -- Получает индекс указанного цвета + альфу
- imagecolormatch --
Делает цвета палитры изображения, более близко соответствуюшие истинной цветовой гамме
- imagecolorresolve --
Получает индекс указанного цвета или его самой близкой возможной альтернативы
- imagecolorresolvealpha --
Получает индекс указанного цвета + альфу или ее самая близкая возможная альтернатива
- imagecolorset -- Устанавливает цвет для указанного индекса палитры
- imagecolorsforindex -- Получает цвета для индекса
- imagecolorstotal -- Узнает номер цветов в палитре изображения
- imagecolortransparent -- Устанавливает прозрачный цвет
- imageconvolution --
Применяет 3x3 матрицу скручивания, используя отделение коэффициента и смещение
- imagecopy -- Копирует часть изображения
- imagecopymerge -- Копирует и смешивает часть изображения
- imagecopymergegray -- Копирует и смешивает часть изображения с шкалой яркости
- imagecopyresampled -- Копирует и смешивает часть изображения с перевыборкой
- imagecopyresized -- Копирует и изменяет размер изображения
- imagecreate -- Создает новое изображение
- imagecreatefromgd2 -- Создает новое изображение из файла GD2 или URL
- imagecreatefromgd2part -- Создает новое изображение от данной части файла GD2 или URL
- imagecreatefromgd -- Создает новое изображение из файла GD или URL
- imagecreatefromgif -- Создает новое изображение из файла или URL (GIF)
- imagecreatefromjpeg -- Создает новое изображение из файла или URL (JPEG)
- imagecreatefrompng -- Создает новое изображение из файла или URL (PNG)
- imagecreatefromstring -- Создает новое изображение из потока изображения в строке
- imagecreatefromwbmp -- Создает новое изображение из файла или URL (WBMP)
- imagecreatefromxbm -- Создает новое изображение из файла или URL (XBM)
- imagecreatefromxpm -- Создает новое изображение из файла или URL (XPM)
- imagecreatetruecolor -- Создает новое изображение уровня палитры true color (24 бита)
- imagedashedline -- Рисует пунктирную линию
- imagedestroy -- Уничтожает изображение
- imageellipse -- Рисует эллипс
- imagefill -- Заливка изображения
- imagefilledarc -- Рисует частичный эллипс, и заполняет его
- imagefilledellipse -- Рисует заполненный эллипс
- imagefilledpolygon -- Рисует заполненный полигон
- imagefilledrectangle -- Рисует заполненный прямоугольник
- imagefilltoborder -- Заливка определенным цветом
- imagefilter --
Применяет фильтр к изображению
- imagefontheight -- Получает высоту шрифта
- imagefontwidth -- Получает ширину шрифта
- imageftbbox -- даёт обрамляющий бокс текста с использованием шрифтов freetype2
- imagefttext -- записывает текст на изображении с использованием шрифтов FreeType 2.
- imagegammacorrect -- Применяет гамма-коррекцию к изображению GD
- imagegd2 -- Выводит изображение GD2 в браузер или файл
- imagegd -- Выводит изображение GD в браузер или файл
- imagegif -- Выводит изображение в браузер или файл
- imageinterlace -- Включает или отключает чередование
- imageistruecolor -- Определяет, является ли изображение изображением уровня truecolor (24 бита)
- imagejpeg -- Выводит изображение в браузер или файл
- imagelayereffect --
Устанавливает альфу, смешивающий флаг, чтобы использовать связанные эффекты слоя libgd
- imageline -- Рисует линию
- imageloadfont -- Загружает новый шрифт
- imagepalettecopy -- Копирует палитру из оддного изображения в другое
- imagepng -- Выводит изображение PNG в браузер или файл
- imagepolygon -- Рисует полигон
- imagepsbbox -- даёт обрамляющий бокс текстового прямоугольника с использованием шрифтов PostScript Type1
- imagepscopyfont -- Делает копию уже загруженного шрифта для последующей модификации
- imagepsencodefont -- Изменяет вектор кодировки символов шрифта
- imagepsextendfont -- Расширяет или сжимает шрифт
- imagepsfreefont -- Освобождает память, используемую шрифтом PostScript Type 1
- imagepsloadfont -- Загружает шрифт PostScript Type 1 из файла
- imagepsslantfont -- Наклоняет шрифт
- imagepstext -- Прорисовывает текстовую строку поверх изображения, используя шрифты PostScript Type1
- imagerectangle -- Рисует прямоугольник
- imagerotate -- Поворачивает рисунок на выбранный угол
- imagesavealpha --
Устанавливает флаг для сохранения информации полного альфа-канала (в противоположность единственной-цветной прозрачности) при сохранении PNG изображения
- imagesetbrush -- Устанавливает изображение кисти для рисования строки
- imagesetpixel -- Устанавливает одиночный пиксел
- imagesetstyle -- Устанавливает стиль рисования линии
- imagesetthickness -- Устанавливает толщину рисования линии
- imagesettile -- Устанавливает изображение для фонового заполнения
- imagestring -- Рисует горизонтальную строку
- imagestringup -- Рисует вертикальную строку
- imagesx -- Получает ширину изображения
- imagesy -- Получает высоту изображения
- imagetruecolortopalette -- Конвертирует изображение true color в палитровое изображение
- imagettfbbox -- Даёт обрамляющий текста с использованием шрифтов TrueType
- imagettftext -- Записывает текст на изображение с использованием шрифтов TrueType
- imagetypes -- Возвращает типы изображений, поддерживаемые данной версией РНР
- imagewbmp -- Выводит изображение формата WBMP в браузер или файл
- imagexbm --
Выводит изображение формата XBM в браузер лил файл
- iptcembed -- Внедряет двоичные IPTC-данные в JPEG-изображение
- iptcparse -- Разбирает двоичный IPTC-блок http://www.iptc.org/ в отдельные тэги.
- jpeg2wbmp -- Конвертирует изображение формата JPEG в формат WBMP
- png2wbmp -- Конвертирует изображение формата PNG в формат WBMP
|