Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / PHP / Руководство по РНР 3.0 / Справочник функций /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Функции работы с изображениями - Программирование от RIN.RU
Функции работы с изображениями

GetImageSize
ImageArc
ImageChar
ImageCharUp
ImageColorAllocate
ImageColorTransparent
ImageCopyResized
ImageCreate
ImageCreateFromGif
ImageDashedLine
ImageDestroy
ImageFill
ImageFilledPolygon
ImageFilledRectangle
ImageFillToBorder
ImageFontHeight
ImageFontWidth
ImageGif
ImageInterlace
ImageLine
ImageLoadFont
ImagePolygon
ImageRectangle
ImageSetPixel
ImageString
ImageStringUp
ImageSX
ImageSY
ImageTTFBBox
ImageTTFText
ImageColorAt
ImageColorClosest
ImageColorExact
ImageColorResolve
ImageColorSet
ImageColorsForIndex
ImageColorsTotal



Вы можете использовать фуннкции работы с изображениями для получения размеров картинок в файлах JPEG, GIF, PNG, и, если у Вас есть библиотека GD (доступна на http://www.boutell.com/gd/), Вы также будете иметь возможность создавать GIF-изображения и управлять ими.


GetImageSize


GetImageSize -- получение размеров GIF, JPG или PNG изображений


Описание 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


Пример. GetImageSize


<?php $size = GetImageSize("img/flag.jpg"); ?>
<IMG SRC="img/flag.jpg" <?php echo $size[3]; ?>>


Опциональный параметр imageinfo позволяет Вам получить некоторую дополнительную информацию о файле изображения. Сейчас возвращаеются разнообразные JPG APP маркеры в ассоцированном массиве. Некоторые программы используют эти APP для встраивания текстовой информации в изображение. Очень распространено встраивание IPTC http://www.xe.net/iptc/ информации в APP13 маркер. Вы можете использовать функцию iptcparse() для перевода бинарного APP13 маркера в нечто читабельное.


Пример. GetImageSize возвращает IPTC




<?php
$size = GetImageSize("testimg.jpg",&$info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
var_dump($iptc);
}
?>



Примечание: Эта функция не требует библиотеки GD.



ImageArc


ImageArc -- рисует часть эллипса


Описание 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.



ImageChar


ImageChar -- рисует символы горизонтально


Описание 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().



ImageCharUp


ImageCharUp -- рисует символы вертикально


Описание 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().



ImageColorAllocate


ImageColorAllocate -- определяет цвет изображения


Описание 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);



ImageColorTransparent


ImageColorTransparent -- определить цвет как прозрачный


Описание int imagecolortransparent(int im, int [col]);


ImageColorTransparent устанавливает прозрачный цвет в изображении im в col. im - идентификатор изображения, возвращенный imagecreate(), а col - идентификатор цвета, возвращенный функцией ImageColorAllocate().


Возвращается идентификатор нового (или текущего, если не указан параметр col) прозрачного цвета.



ImageCopyResized


ImageCopyResized -- копирует и изменяет размеры части изображения


Описание 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) но если области перекроются, результат может быть непредсказуемым.



ImageCreate


ImageCreate -- создать новое изображение


Описание int imagecreate(int x_size, int y_size);


ImageCreate возвращает идентификатор изображения чистого листа размерами x_size на y_size.



ImageCreateFromGif


ImageCreateFromGif -- создать новое изображение из файла или URL


Описание int imagecreatefromgif(string filename);


ImageCreateFromGif возвращает идентификатор изображения, полученного из filename.



ImageDashedLine


ImageDashedLine -- нарисовать пунктирную линию


Описание int imagedashedline(int im, int x1, int y1, int x2, int y2, int col);


ImageLine рисует пунктирную линию от x1,y1 до x2,y2 (верхний левй угол - 0,0) в изображении im цветом col.


Смотри также imageline().



ImageDestroy


ImageDestroy -- уничтожить изображение


Описание int imagedestroy(int im);


ImageDestroy освобождает память, ассоциированную с изображением im. im - идентификатор, возвращенный функцией imagecreate().



ImageFill


ImageFill -- заливка


Описание int imagefill(int im, int x, int y, int col);


ImageFill выполняет заливку, начиная с координат x, y (верхний левй угол - 0,0) цветом col изображения im.



ImageFilledPolygon


ImageFilledPolygon -- нарисовать закрашенный многоугольник


Описание 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 - общее число вершин.



ImageFilledRectangle


ImageFilledRectangle -- нарисовать закрашенный прямоугольник


Описание int imagefilledrectangle(int im, int x1, int y1, int x2, int y2, int col);


ImageFilledRectangle создает закрашенный прямоугольник цвета col в изображении im, начиная с координат верхнего левого угла x1, y1, и заканчивая в правом нижнем - x2, y2. 0, 0 - левый верхний угол изображения.



ImageFillToBorder


ImageFillToBorder -- заливка до указанного цвета


Описание int imagefilltoborder(int im, int x, int y, int border, int col);


ImageFillToBorder выполняет заливку до границы, определенной цветом в border. Начальная точка заливки - x,y (верхний левый угол - 0,0) и облласть заливается цветом col.



ImageFontHeight


ImageFontHeight -- узнать высоту шрифта


Описание int imagefontheight(int font);


Возвращает высоту шрифта font в пикселах.


Смотри также ImageFontWidth() и ImageLoadFont().



ImageFontWidth


ImageFontWidth -- узнать ширину шрифта


Описание int imagefontwidth(int font);


Возвращает ширину символа шрифта font в пикселах.


Смотри также ImageFontHeight() и ImageLoadFont().



ImageGif


ImageGif -- вывести изображение на браузер или в файл


Описание int imagegif(int im, string filename);


ImageGif создает GIF файл с именем filename из изображения im. Аргумент im возвращается функцией imagecreate().


Формат изображения будет соответствовать спецификации GIF87a, если изображение не было сделано прозрачным функцией imagecolortransparent(), в этом случае формат будет соответствовать GIF89a.


Аргумент filename опционален, и если он отсутствует, строки изображения будут выводиться непосредственно на брайзер потоком. Указав тип изображения image/gif в функции header, вы можете создавать PHP скрипты, которые будут выводить GIF на браузер.



ImageInterlace


ImageInterlace -- включение/выключение чередования (interlace)


Описание int imageinterlace(int im, int [interlace]);


ImageInterlace() переключает бит чередования. Если interlace равен 1, изображение im будет выводиться поэтапно, и если interlace равно 0, чередование выключено.


Возвращается текущее состояние бита чередования для изображения.



ImageLine


ImageLine -- нарисовать линию


Описание 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().



ImageLoadFont


ImageLoadFont -- загрузить новый шрифт


Описание int imageloadfont(string file);


ImageLoadFont загружает пользовательский растровый шрифт и возвращает идентификатор шрифта (который всегда больше 5, тобы не вызвать конфликта со встроенными шрифтами).


Файл шрифта - двоичный и архиетктурно зависимый. Это значит, что Вам следует генерировать файл шрифта на том процессоре (архитектуре), на котором Вы будете запускать PHP.


Формат файла шрифта
позиция байтатип данных CОписание
байты 0-3intчисло символов в шрифте
байты 4-7intзначение первого символа в шрифте (часто 32 для пробела)
байты 8-11intширина символов в пикселах
байты 12-15intвысота символов в пикселах
байты 16-charмассив с данными на символы, один байт на пиксел, для каждого символа - nchars*width*height.



Смотри также ImageFontWidth() и ImageFontHeight().



ImagePolygon


ImagePolygon -- нарисовать многоугольник


Описание 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().



ImageRectangle


ImageRectangle -- нарисовать прямоугольник


Описание int imagerectangle(int im, int x1, int y1, int x2, int y2, int col);


ImageRectangle создает прямоугольник цветом col в изображении im, начиния с левой верхней координаты x1,y1 и заканчивая нижней правой x2,y2. 0,0 - левй верхний угол изображения.



ImageSetPixel


ImageSetPixel -- установить один пиксел


Описание int imagesetpixel(int im, int x, int y, int col);


ImageSetPixel рисует пиксел x,y (верхний левый - 0,0) в изображении im цветом col.


Смотри также ImageCreate() и ImageColorAllocate().



ImageString


ImageString -- нарисовать строку горизонтально


Описание 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().



ImageStringUp


ImageStringUp -- нарисовать строку вертикально


Описание 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().



ImageSX


ImageSX -- get image width


Описание int imagesx(int im);


ImageSX возвращает ширину изображения, определяемого im.


Смотри также ImageCreate() и ImageSY().



ImageSY


ImageSY -- узнать высоту изображения


Описание int imagesy(int im);


ImageSY возвращает высоту изображения, определяемого im.


Смотри также ImageCreate() и ImageSX().



ImageTTFBBox


ImageTTFBBox -- установить границы области для текста, где используются шрифты TypeType


Описание array ImageTTFBBox(int size, int angle, string fontfile, string text);


Функция рассчитывает и возвращает границы области (в пикселах) для текста с шрифтами TrueType.


text

Измеряемая строка.

size

Размер шрифта.

fontfile

Имя файла TrueType шрифта. (Может быть и URL.)

angle

Угол в градусах, под которым наклонен измеряемый text.


ImageTTFBBox() возвращает массив из 8-и элементов, представляющих четыре точки границы области текста:


0нижний левый угол, позиция X
1нижний левый угол, позиция Y
2нижний правый угол, позиция X
3нижний правый угол, позиция Y
4верхний правый угол, позиция X
5верхний правый угол, позиция Y
6верхний левый угол, позиция X
7верхний левый угол, позиция Y



Точки относятся к text безотносительно к углу, т.е "верхний левый" означает верхний левый угол текста при его горизонтальном расположении.


Функция требует две библиотеки: GD и Freetype.


Смотри также ImageTTFText().



ImageTTFText


ImageTTFText -- впсать текст в изображение, используя TrueType шрифт


Описание 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.


Пример. ImageTTFText


<?php
Header("Content-type: image/gif");
$im = imagecreate(400,30);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
ImageTTFText($im, 20, 0, 10, 20, $white, "/path/arial.ttf", "Testing... Omega: Ω");
ImageGif($im);
ImageDestroy($im);
?>


Эта функция требует обе библиотеки: GD и FreeType<.


Смотри также ImageTTFBBox().



ImageColorAt


ImageColorAt -- узнать индекс цвета пиксела


Описание 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().



ImageColorClosest


ImageColorClosest -- узнать индекс цвета, ближайшего заданному


Описание int imagecolorclosest(int im, int red, int green, int blue);


Возвращает индекс цвета в палитре изображения, который "ближе всего" к указанному набору RGB.


"Дистанция" между желанным цветом и каждым цветом в палитре определяется так, как будто значения RGB определяют точки в трехмерном пространстве.


Смотри также ImageColorExact().



ImageColorExact


ImageColorExact -- узнать индекс указанного цвета


Описание int imagecolorexact(int im, int red, int green, int blue);


Возвращает индекс указанного цвета в палитре изображения.


Если цвет в палитре изображения не присутствует, возвращается -1.


Смотри также ImageColorClosest ().



ImageColorResolve


ImageColorResolve -- узнать индекс указанного цвета или его ближайшую возможную альтернативу


Описание int imagecolorresolve(int im, int red, int green, int blue);


Эта функция всегда возвращает индекс для запрашиваемого цвета, одно из двух - или указанный цвет, или ближайшую альтернативу.


Смотри также ImageColorClosest ().



ImageColorSet


ImageColorSet -- установить цвет для указанного индекса в палитре


Описание bool imagecolorset(int im, int index, int red, int green, int blue);


Эти установки устанавливают соответствие между индексом в палитре и цветом. это используется для создания эффектов сплошной заливки в палитре изображения без накладных расходов преобразования текущей заливки.


Смотри также ImageColorAt().



ImageColorsForIndex


ImageColorsForIndex -- узнать цвет по индексу


Описание array imagecolorsforindex(int im, int index);


Возвращается ассоциативный массив с красным, синим и зеленым ключами, которые содержат соответствующие значения для указанного индекса цвета.


Смотри также ImageColorAt() и ImageColorExact().



ImageColorsTotal


ImageColorsTotal -- количество цветов в палитре изображения


Описание int imagecolorstotal(int im);


Возвращает количество цветов в указанной палитре.


Смотри также ImageColorAt() и ImageColorsForIndex().



 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Adabas D функции

Специфичные функции Apache

Функции обработки массивов

Математические BC (произвольной точности) функции

Календарные Функции

Функции Даты/Времени

dBase функции

Функции dbm

Функции для работы с каталогами

Функции запуска программ

Функции работы с filePro

Функции файловой системы

Функции, связанные с HTTP

Функции работы с Hyperwave

Функции IMAP

PHP опции и информация

Функции работы с Informix

LDAP Функции

Почтовые функции

Математические функции

Дополнительные функции

Функции mSQL

Функции MySQL

Функции для работы с Sybase

Сетевые функции

Функции ODBC

Функции Oracle

Функции PDF

Функции PostgreSQL

Функции регулярных выражений

Функции семафоров и разделяемой памяти

Solid (надежные) функции

Функции SNMP

Строковые функции

Функции URL

Функции переменных

Функции Vmailmgr

Функции Gz-файлов

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь