Вы можете использовать фуннкции работы с изображениями для получения размеров картинок в файлах JPEG, GIF, PNG, и, если у Вас есть библиотека GD (доступна на http://www.boutell.com/gd/), Вы также будете иметь возможность создавать GIF-изображения и управлять ими.
array getimagesize
(string filename, array [imageinfo]);
Функция GetImageSize() определяет размеры любых изображений в файлах GIF, JPG или PNG и возвращает размерность вместе с типом файла и строкой в формате высота/ширина, которую можно использовать в стандартном теге HTML IMG.
Возвращается массив из четырех элементов. Индекс 0 содержит ширину изображения в пикселах. Элемент 1 содержит высоту. Элемент 2 - флаг типа изображения. 1 = GIF, 2 = JPG, 3 = PNG. Элемент 3 - строку с корректным заданием "height=xxx width=xxx" для прямого использования в теге IMG
Пример 1. GetImageSize <?php $size = GetImageSize("img/flag.jpg"); ?> |
Опциональный параметр imageinfo позволяет Вам получить некоторую дополнительную информацию о файле изображения. Сейчас возвращаеются разнообразные JPG APP маркеры в ассоцированном массиве. Некоторые программы используют эти APP для встраивания текстовой информации в изображение. Очень распространено встраивание IPTC http://www.xe.net/iptc/ информации в APP13 маркер. Вы можете использовать функцию iptcparse() для перевода бинарного APP13 маркера в нечто читабельное.
Пример 2. GetImageSize возвращает IPTC <?php $size = GetImageSize("testimg.jpg",&$info); if (isset($info["APP13"])) { $iptc = iptcparse($info["APP13"]); var_dump($iptc); } ?> |
Примечание: Эта функция не требует библиотеки GD.
int imagearc
(int im, int cx, int cy, int w, int h, int s, int e, int col);
ImageArc рисует чать эллипса с центро в cx, cy (верхний левый угол - 0,0) в изображении im. w и h определяют высоту и ширину эллипса в соответствии с начальной и конечной точкой, определенными в аргументах s и e.
int imagechar
(int im, int font, int x, int y, string c, int col);
ImageChar рисует первый символ из c в рисунке id с верхним левым углом в x,y (верхний левый - 0,0) цветом col. Шрифтом 1, 2, 3, 4 или 5, используются встроенные шрифты (больше цифра - больше шрифт).
Смотри также imageloadfont().
int imagecharup
(int im, int font, int x, int y, string c, int col);
ImageCharUp рисует символ c вертикально в изображении im по координатам x, y (верхний левый - 0, 0) с цветом col. Если font равен 1, 2, 3, 4 или 5, используются встроенные шрифты.
Смотри также imageloadfont().
int imagecolorallocate
(int im, int red, int green, int blue);
ImageColorAllocate возвращает цвет в схеме RGB. Аргумент im возвращается функцией imagecreate(). ImageColorAllocate должна быть вызвана для создания каждого цвета, который планируется использовать в изображении, представленном im.
$white = ImageColorAllocate($im, 255,255,255); $black = ImageColorAllocate($im, 0,0,0);
int imagecolortransparent
(int im, int [col]);
ImageColorTransparent устанавливает прозрачный цвет в изображении im в col. im - идентификатор изображения, возвращенный imagecreate(), а col - идентификатор цвета, возвращенный функцией imagecolorallocate().
Возвращается идентификатор нового (или текущего, если не указан параметр col) прозрачного цвета.
int imagecopyresized
(int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH);
ImageCopyResized копир область одного изображения в другое. dst_im - изображение-получатель, src_im - исходное изображение. Если координаты исходного и результирующего изображений различны по ширине и высоте, производится соответствующее сжатие/растягивание фрагмента изображения. Координаты - относительно левого верхнего угла. Функция может быть использована для копирования фрагментов одного и того же изображения (если dst_im равно src_im) но если области перекроются, результат может быть непредсказуемым.
int imagecreate
(int x_size, int y_size);
ImageCreate возвращает идентификатор изображения чистого листа размерами x_size на y_size.
int imagecreatefromgif
(string filename);
ImageCreateFromGif возвращает идентификатор изображения, полученного из filename.
int imagedashedline
(int im, int x1, int y1, int x2, int y2, int col);
ImageLine рисует пунктирную линию от x1,y1 до x2,y2 (верхний левй угол - 0,0) в изображении im цветом col.
Смотри также imageline().
int imagedestroy
(int im);
ImageDestroy освобождает память, ассоциированную с изображением im. im - идентификатор, возвращенный функцией imagecreate().
int imagefill
(int im, int x, int y, int col);
ImageFill выполняет заливку, начиная с координат x, y (верхний левй угол - 0,0) цветом col изображения im.
int imagefilledpolygon
(int im, array points, int num_points, int col);
ImageFilledPolygon создает закрашенный многоугольник в изображении im. points - массив PHP содержит вершины многоугольника:
points[0] = x0, points[1] = y0, points[2] = x1, points[3] = y1, etc.num_points - общее число вершин.
int imagefilledrectangle
(int im, int x1, int y1, int x2, int y2, int col);
ImageFilledRectangle создает закрашенный прямоугольник цвета col в изображении im, начиная с координат верхнего левого угла x1, y1, и заканчивая в правом нижнем - x2, y2. 0, 0 - левый верхний угол изображения.
int imagefilltoborder
(int im, int x, int y, int border, int col);
ImageFillToBorder выполняет заливку до границы, определенной цветом в border. Начальная точка заливки - x,y (верхний левый угол - 0,0) и облласть заливается цветом col.
int imagefontheight
(int font);
Возвращает высоту шрифта font в пикселах.
Смотри также imagefontwidth() и imageloadfont().
int imagefontwidth
(int font);
Возвращает ширину символа шрифта font в пикселах.
Смотри также imagefontheight() и imageloadfont().
int imagegif
(int im, string filename);
ImageGif создает GIF файл с именем filename из изображения im. Аргумент im возвращается функцией imagecreate().
Формат изображения будет соответствовать спецификации GIF87a, если изображение не было сделано прозрачным функцией imagecolortransparent(), в этом случае формат будет соответствовать GIF89a.
Аргумент filename опционален, и если он отсутствует, строки изображения будут выводиться непосредственно на брайзер потоком. Указав тип изображения image/gif в функции header, вы можете создавать PHP скрипты, которые будут выводить GIF на браузер.
int imageinterlace
(int im, int [interlace]);
ImageInterlace() переключает бит чередования. Если interlace равен 1, изображение im будет выводиться поэтапно, и если interlace равно 0, чередование выключено.
Возвращается текущее состояние бита чередования для изображения.
int imageline
(int im, int x1, int y1, int x2, int y2, int col);
ImageLine рисует линию от x1,y1 до x2,y2 (левй верхний точка - 0,0) в изображении im цветом col.
Смотри также imagecreate() и imagecolorallocate().
int imageloadfont
(string file);
ImageLoadFont загружает пользовательский растровый шрифт и возвращает идентификатор шрифта (который всегда больше 5, тобы не вызвать конфликта со встроенными шрифтами).
Файл шрифта - двоичный и архиетктурно зависимый. Это значит, что Вам следует генерировать файл шрифта на том процессоре (архитектуре), на котором Вы будете запускать PHP.
Таблица 1. Формат файла шрифта
позиция байта | тип данных C | Описание |
---|---|---|
байты 0-3 | int | число символов в шрифте |
байты 4-7 | int | значение первого символа в шрифте (часто 32 для пробела) |
байты 8-11 | int | ширина символов в пикселах |
байты 12-15 | int | высота символов в пикселах |
байты 16- | char | массив с данными на символы, один байт на пиксел, для каждого символа - nchars*width*height. |
Смотри также ImageFontWidth() и ImageFontHeight().
int imagepolygon
(int im, array points, int num_points, int col);
ImagePolygon создает многоугольник в изображении im. points - массив PHP, содержащий вершины многоугольника, т.е points[0] = x0, points[1] = y0, points[2] = x1, points[3] = y1, etc. num_points - общее число вершин.
Смотри также imagecreate().
int imagerectangle
(int im, int x1, int y1, int x2, int y2, int col);
ImageRectangle создает прямоугольник цветом col в изображении im, начиния с левой верхней координаты x1,y1 и заканчивая нижней правой x2,y2. 0,0 - левй верхний угол изображения.
int imagesetpixel
(int im, int x, int y, int col);
ImageSetPixel рисует пиксел x,y (верхний левый - 0,0) в изображении im цветом col.
Смотри также imagecreate() и imagecolorallocate().
int imagestring
(int im, int font, int x, int y, string s, int col);
ImageString рисует строку s в изображении im по координатам x,y (верхний левый - 0,0) цветом col. Если font равен 1, 2, 3, 4 или 5, используются встроенные шрифты.
Смотри также imageloadfont().
int imagestringup
(int im, int font, int x, int y, string s, int col);
ImageStringUp рисует строку s вертикально в изображении im по координатам x,y (верхний левый - 0,0) цветом col. Если font равен 1, 2, 3, 4 или 5, используются встроенные шрифты.
Смотри также imageloadfont().
int imagesx
(int im);
ImageSX возвращает ширину изображения, определяемого im.
Смотри также imagecreate() и imagesy().
int imagesy
(int im);
ImageSY возвращает высоту изображения, определяемого im.
Смотри также imagecreate() и imagesx().
array ImageTTFBBox
(int size, int angle, string fontfile, string text);
Функция рассчитывает и возвращает границы области (в пикселах) для текста с шрифтами TrueType.
Измеряемая строка.
Размер шрифта.
Имя файла TrueType шрифта. (Может быть и URL.)
Угол в градусах, под которым наклонен измеряемый text.
0 | нижний левый угол, позиция X |
1 | нижний левый угол, позиция Y |
2 | нижний правый угол, позиция X |
3 | нижний правый угол, позиция Y |
4 | верхний правый угол, позиция X |
5 | верхний правый угол, позиция Y |
6 | верхний левый угол, позиция X |
7 | верхний левый угол, позиция Y |
Точки относятся к text безотносительно к углу, т.е "верхний левый" означает верхний левый угол текста при его горизонтальном расположении.
Функция требует две библиотеки: GD и Freetype.
Смотри также ImageTTFText().
array ImageTTFText
(int im, int size, int angle, int x, int y, int col, string fontfile, string text);
ImageTTFText рисует строку text в изображении, идентифицируемом im, начиная с координат x,y (верхняя левая - 0,0), под углом angle цветом col, используя файл TrueType шрифта, указанный в fontfile.
Координаты, указанные в x, y определяют базовую точку символа (приблизительно нижний левый угол). Это отличается от ImageString(), где x,y определяют верхний правый угол первого символа.
angle в градусах, 0 означает написание текста с лава на право (в направлении на 3 часа), более высокие значения - поворот против часовой стрелки (т.е. 90 - написание текста с низу вверх).
fontfile - путь к файлу шрифта TrueType, который планируется использовать.
text - строка текста, которая может включать символы UTF-8 (в форма: { ) для доступа к сиволам за пределами первых 255.
col индекс цвета. Использование отрицания индекса цвета имеет эффект включения антиалиасинга.
ImageTTFText() возвращает массив из 8 элементов, представляющих четыре точки границы области вывода текста. Порядок точек: вепхняя левая, верхняя правая, нижняя правая, нижняя левая. ТОчки относятся к тексту без учета угла, т.е. "верхняя левая" означает верхний левый угол горизонтально расположенного текста.
Скрипт этого примера создает черный GIF 400x30 пикселей, со словом "Testing...", написанным шрифтом Arial.
Пример 1. ImageTTFText
|
Эта функция требует обе библиотеки: GD и FreeType<.
Смотри также ImageTTFBBox().
int imagecolorat
(int im, int x, int y);
Returns the index of the color of the pixel at the specified location in the image.
Смотри также
imagecolorset() и
imagecolorsforindex().
Возвращает индекс цвета в палитре изображения, который "ближе всего" к указанному набору RGB.
"Дистанция" между желанным цветом и каждым цветом в палитре определяется так, как будто значения RGB определяют точки в трехмерном пространстве.
Смотри также
imagecolorexact().
Возвращает индекс указанного цвета в палитре изображения.
Если цвет в палитре изображения не присутствует, возвращается -1.
Смотри также
imagecolorclosest().
Эта функция всегда возвращает индекс для запрашиваемого цвета, одно из двух - или указанный цвет, или ближайшую альтернативу.
Смотри также
imagecolorclosest().
Эти установки устанавливают соответствие между индексом в палитре и цветом. это используется для создания эффектов сплошной заливки в палитре изображения без накладных расходов преобразования текущей заливки.
Смотри также
imagecolorat().
Возвращается ассоциативный массив с красным, синим и зеленым ключами, которые содержат соответствующие значения для указанного индекса цвета.
Смотри также
imagecolorat() и
imagecolorexact().
Возвращает количество цветов в указанной палитре.
Смотри также
imagecolorat() и
imagecolorsforindex().
Назад |
Содержание |
Вперед
ImageColorClosest
ImageColorClosest -- узнать индекс цвета, ближайшего заданному
Описание
int imagecolorclosest
(int im, int red, int green, int blue);
ImageColorExact
ImageColorExact -- узнать индекс указанного цвета
Описание
int imagecolorexact
(int im, int red, int green, int blue);
ImageColorResolve
ImageColorResolve -- узнать индекс указанного цвета или его ближайшую возможную альтернативу
Описание
int imagecolorresolve
(int im, int red, int green, int blue);
ImageColorSet
ImageColorSet -- установить цвет для указанного индекса в палитре
Описание
bool imagecolorset
(int im, int index, int red, int green, int blue);
ImageColorsForIndex
ImageColorsForIndex -- узнать цвет по индексу
Описание
array imagecolorsforindex
(int im, int index);
ImageColorsTotal
ImageColorsTotal -- количество цветов в палитре изображения
Описание
int imagecolorstotal
(int im);