Вы можете использовать фуннкции работы с изображениями для получения размеров картинок в файлах 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-3 | int | число символов в шрифте | байты 4-7 | int | значение первого символа в шрифте (часто 32 для пробела) | байты 8-11 | int | ширина символов в пикселах | байты 12-15 | int | высота символов в пикселах | байты 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
| |