Графика, Flash, pdf
РНР позволяет выводить не только HTML-текст, но и создавать (и отсылать браузеру) графические данные в различных форматах (gif, png, jpg, wbmp, xpm). Для того чтобы РНР мог работать с графикой, требуется библиотека GD. Вероятно, также потребуются дополнительные библиотеки для поддержки особенных форматов. Начиная с версии 1.6, GD не поддерживает работу с форматом GIF; вместо него используется формат png. Библиотека GD library доступна по адресу http://www.boutell.com/gd/. Для работы с рисунками jpeg используется библиотека jpeg-6b (ftp:// ftp.uu.net/graphics/jpeg/), которую следует прикомпилировать с Gd, используя параметр компиляции РНР -with-jpeg-dir=/path/to/jpeg-6b. Для поддержки шрифтов Туре 1, используя параметр —with-tllib[=dir] установите tllib (ftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/ tllib/). Следующий пример (сценарий button.php) вызывается со страницы тегом вида <img src="button.php?text"> (в данном случае на рисунке images/buttonl.png будет выведена надпись «text» и затем этот рисунок будет отослан браузеру). Это более удобный способ, использующий готовый макет рисунка, не требующий его перерисовки с начала, но добавляющий в него дополнительные элементы. <?prip // файл button.php ImageTypes Определение графических форматов, поддерживаемых РНР int imagetypes(void); Возвращает битовую маску графических форматов, поддерживаемых используемой библиотекой GD: IMG_GIF | IMG_JPG IMG_PNG | IMG_WBMP. <?php if (ImageTypesO & IMG_PNG) ImageCreate Создание рисунка int imagecreate (int x_s1ze, int y_size) Возвращает дескриптор созданной картинки размером x_size на y_size. <?php header ("Content-type: image/png").
ImageCreateFromGIF Создание рисунка из файла GIF Int imagecreatefromgif (string filename) Возвращает дескриптор рисунка filename (можно указать URL) или пустую строку при ошибке (с выдачей предупреждения). function LoadGif (Simgname) { Так как GD, начиная с версии 1.6, не поддерживает GIF, функция недоступна для этих версий. ImageCreateFromJPEG Создание рисунка из файла JPEG int imagecreatefromjpeg (string filename) Возвращает дескриптор рисунка filename (можно указать URL) или пустую строку при ошибке (с выдачей предупреждения). ImageCreateFromPNG Создание рисунка из файла PNG int imagecreatefrompng (string filename) Возвращает дескриптор рисунка filename (можно указать URL) или пустую строку при ошибке (с выдачей предупреждения). GetlmageSize Получение свойств рисунка GIF, JPEG, PNG, SWF array getimagesize (string filename [, array imageinfo]) Возвращает массив, содержащий информацию о графическом файле (4 элемента): [0] и [1] — ширина и высота рисунка в пикселах, [2] — тип файла (1 = GIF, 2 - JPG, 3 - PNG, 4 = SWF), [3] - строка вида «height=xxx width=xxx», которая может использоваться непосредственно в HTML-теге IMG. <?php $size = GetlmageSize ("img/flag.jpg"):
?> Указав необязательный массив imageinfo, в нем можно сохранить дополнительную информацию о файле, например различные маркеры JPG APP (внедренную информацию). Часто в маркер АРР13 заносят информацию IPTC http://www.iptc.org/. Функция iptcparse() позволяет конвертировать эти данные АРР13 в читаемый вид. <?php Ssize = GetlmageSize ("testimg.jpg".&$info): Функция не требует библиотеки GD. read_exif_data Чтение заголовков EXIF из файла JPEG array read_exif_data (string filename) Возвращает ассоциативный массив, в котором индексами являются имена заголовков Exif. Заголовки Exif обычно хранят информацию цифровых камер (в различном виде). <?php Sexif = read_exif_data Cp0001807.jpg'); Функция доступна, только если PHP 4 компилировался с параметром --enable-exif. Библиотека GD не требуется. ImageSX Определение ширины рисунка int imagesx (int lm) См. также: ImageCreate() и ImageSY(). ImageSY Определение высоты рисунка int imagesy (int im) См. также: ImageCreate() и ImageSX(). Imagelnterlace Установка чересстрочности int imageinterlace (int im [, int interlace]) Если interlace = 1, то это делает рисунок отображаемым чересстрочно, если 0 — последовательно. Возвращается текущая установка чересстрочности. ImageGIF Отсылка рисунка GIF браузеру или сохранение его в файле int imagegif (int im [, string filename]) Cos/част файл формата GIF из рисунка im. Затем файл сохраняется под именем filename, или, если имя не указано, содержимое файла передается непосредственно браузеру (не забывайте предварительно отослать браузеру заголовок, сообщающий, что передается графический файл). Файл имеет формат GIF87a, а если он был сделан прозрачным функцией ImageColorTransparent(), то формат будет GIF89a. Так как GD, начиная с версии 1.6, не поддерживает GIF, функция недоступна для этих версий. Следующий пример позволяет выводить рисунок в зависимости от того, какой формат поддерживается. <?php if (function_exists("imagegif")) Используйте функцию imagetypes() вместо function_exists() для проверки поддержки различных форматов: if (ImageTypes()& IMG_GIF) { См. также: ImagePng(), ImageJpeg(), ImageTypes(). ImagePNG Отсылка рисунка PNG браузеру или сохранение его в файле int imagepng (int im [, string filename]) Выводит GD рисунок im в формате PNG на стандартный поток вывода (обычно браузер), или если указано имя файла filename, то в этот файл. <?php $im = ImageCreateFromPngC'test.png"). См. также: ImageGif(), ImageJpeg(), ImageTypes(). ImageJPEG Отсылка рисунка JPEG браузеру или сохранение его в файле int imagejpeg (int im [, string filename [, int quality]]) Выводит рисунок im в формате JPEG на стандартный поток вывода (обычно браузер), или если указано имя файла filename, то сохраняет в этот файл. Аргументом quality можно указать качество изображения (обратно пропорционально размеру файла) от 0 до 100. Imagejpeg($im.'' .20);// вывести рисунок Поддержка JPEG была добавлена в GD 1.8 и более поздние версии. См. также: ImagePng(), ImageGif(), ImageTypes(). ImageDestroy Уничтожение рисунка int imagedestroy (int im) ImageCopy Копирование части рисунка int ImageCopy (int dst_im, int src_im, int dst_x, int dst_y, ] int src_x, int src_y, int src_w, int src_h) Копирует прямоугольную область src_x, src_y, src_w (ширина), src_h / (высота) рисунка src_im в рисунок dst_im со смещением dst_x, dst_y. 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) Функция подобна ImageCopy(), но область рисунка масштабируется, так что его ширина и высота становятся равными dstW и dstH. Цвета и палитра ImageColorAllocate Выделение цвета для рисунка int imagecoloral locate (int im, int red, int green, int blue) Возвращает индекс добавленного в палитру цвета, составленного из компонентов red (красный), green (зеленый), blue (синий). Swhite = ImageColorAllocate ($im. 255. 255. 255); ImageColorDeAllocate Исключение цвета из палитры рисунка int imagecolordeal locate (int im, int index) $white - ImageColorAllocate($im. 255, 255. 255); ImageColorSet Замена цвета определенного элемента палитры boo! imagecolorset (int im, int index, int red, int green, int blue) Устанавливает для элемента палитры index рисунка im значения компонент цвета: red (красный), green (зеленый), blue (синий). При этом все части рисунка, закрашенные данным цветом, также изменят свой оттенок. См. также imagecolorat(). ImageColorsForlndex Получение цвета элемента палитры array imagecolorsforindex (int im, int index) Возвращает ассоциативный массив трех элементов: red, green, blue, содержащий значение компонентов цветности указанного цвета index. См. также: imagecolorat() и imagecolorexact(). ImageColorExact Получение индекса цвета палитры int imagecolorexact (int im, int red, int green, int blue) Если точно соответствующего цвета в палитре не имеется, то возвращается -1. См. также imagecolorclosest(). ImageColorClosest Получение цвета палитры, наиболее близкого к указанному int imagecolorclosest (int im, int red, int green, int blue) Возвращает индекс цвета палитры рисунка. Близость вычисляется согласно RGB. См. также imagecolorexact(). ImageColorResolve Нахождение или создание указанного цвета int imagecolorresolve (int im, Int red, int green, Int blue) Возвращает индекс указанного цвета в палитре. Если такой цвет отсутствует, он создается. См. также imagecolorclosest(). ImageGammaCorrect Применение гамма-коррекции рисунка Int Imagegammacorrect (int im, double inputgamma, double outputgamma) ImageColorsTotal Получение числа цветов в палитре int imagecolorstotal (int im) См. также: imagecolorat() и imagecolorsforindex(). ImageColorTransparent Определение цвета прозрачности int imagecolortransparent (int im [, int col]) Устанавливает (возвращает) индекс цвета палитры, используемого как прозрачный. Возвращает индекс текущего (или установленного) «прозрачного» цвета. ImageColorAt Получение индекса цвета пиксела int imagecolorat (int im, int x, int y) См. также: imagecolorset() и imagecolorsforindex(). Черчение фигур ImageSetPixel Установка пиксела int imagesetpixel (int im, int x, int y, int color) Верхний левый угол рисунка имеет координаты (О, О). См. также: ImageCreate() и ImageColorAllocate(). ImageLine Черчение линии int imageline (int im, int xl, int yl, int x2, int y2, int color) ImageDashedLine Черчение прерывистой линии int imagedashedline (Int im, int xl, int yl, int x2, int y2, int col) См. также ImageLine(). ImageRectangle Черчение прямоугольника int imagerectangle (Int im, int xl, int yl, int x2, int y2, int col) Левый верхний угол задается (xl, yl), а правый нижний — (x2, y2). ImageFilledRectangle Зарисовка прямоугольной области int imagefilledrectangle (int im, int xl, int yl, int x2, int y2, int col) ImagePolygon Черчение многоугольника int imagepolygon (int im, array points, int numjreints, int col) Аргумент points содержит координаты углов в виде: points[0] = xO, points[l] = yO, points[2] = xl, points[3] = yl и.т. д. num_points задает число углов. См. также imagecreate(). ImageFilledPolygon Закраска многоугольника int imagefilledpolygon (int im, array points, int num_points, int col) ImageArc Рисование части эллипса int imagearc (int im, int ex, int cy, int w, int h, int s, int e, int col) ex, су задают центр эллипса, w и h — ширину и высоту, s и е — начальный и конечный угол в градусах, со! — цвет. ImageFill Заливка цветом ограниченной области int imagefill (int im, int x, "int y, int col) ImageFillToBorder Заливка области, ограниченной бордюром int imagefilltoborder (int im, int x, int y, int border, int col) Индекс цвета окантовки задается аргументом border, а заливки — col. Заливка начинается от точки с координатами (х,у). Шрифты и надписи . ImageLoadFont Загрузка шрифта int image!oadfont (string file) Загружает шрифт из файла file и возвращает назначенный ему идентификатор. Встроенные шрифты имеют идентификаторы 1-5 (меньший-больший). Формат файла зависит от системы. В общем случае он имеет следующую структуру:
См. также: ImageForitWidth() и ImageFontHeight(). ImageFontHeight Установка высоты шрифта int imagefontheight (int font) См. также: ImageFontWidth() и ImageLoadFont(). ImageFontWidth Установка ширины шрифта int imagefontwidth (int font) См. также: ImageFontHeight() и ImageLoadFont(). ImageChar Вывод символа горизонтально int imagechar (int im, int font, int x, int y, string c. int col) Шрифт указывается его номером font (1-5 — встроенные шрифты). См. также imageloadfont(). ImageCharUp Вывод символа вертикально int imagecharup (int im, int font, int x, int y, string c, int col) См. также image!oadfont(). ImageString Вывод строки горизонтально int imagestring (int im, int font, int x, int y, string s, int col) См. также ImageLoadFont(). ImageStringUp Вывод строки вертикально int imagestringup (int im, int font, int x, int y. string s. int col) См. также ImageLoadFont(). ImageTTFBBox Расчет площади, занимаемой строкой шрифта ТуреТуре array imagettfbbox (int size, int angle, string fontfile, string text) Аргументы, от которых зависит результат функции:
Возвращает массив из 8 элементов, определяющих прямоугольник вывода текста:
Возвращаемые координаты зависят от угла наклона строки (точкой отсчета служит нижний левый угол первого символа). Координаты могут иметь отрицательные значения. Функция требует библиотеки GD и FreeType См. также ImageTTFText(). ImageTTFText Рисование текста шрифтом TrueType array imagettftext (int im, int size, int angle, int x, int y, int col, string fontfile, string text) Выводит строку text в рисунок im - в координаты х, у (верхний левый угол является началом координат), под углом angle (задается в градусах) цветом col, используя шрифт TrueType из файла fontfile. Аргументами х, у задастся базовая точка первого символа (нижний левьн"! угол символа), что отличает данную функцию от ImageString(), где координаты х, у определяют верхний правый угол символа. Строка текста может включать символьные последовательности UTF-8 (в виде {) для вывода символов с кодами, большими 255. При использовании отрицательного значения индекса цвета отключается сглаживание шрифта (antialiasing). Возвращает массив из 8 элементов, определяющих прямоугольник вывода текста подобно функции imagettfbbox(). Функция требует библиотеки GD и FreeType. <?php Header ("Content-type: image/gif").
Следующий пример выводит строку по центру рисунка: <? См. также ImageTTFBBox(). ImagePSLoadFont Загрузка из файла шрифта PostScript Type 1 int imagepsloadfont (string filename) Возвращает дескриптор загруженного шрифта или FALSE при ошибке (также выводится предупреждение). См. также ImagePSFreeFont(). ImagePSFreeFont Выгрузка шрифта PostScript Type 1 void imagepsfreefont (int fontindex) См. также ImagePSLoadFont(). ImagePSEncodeFont Установка схемы перекодировки текста int imagepsencodefont (int fontjindex, string encodingfile) Загружает файл перекодировки encodingfile для шрифта font_index. Поскольку шрифты PostScript по умолчанию не используют символы с кодами, большими 127, перекодировка требуется при необходимости использования не английского языка. Формат файла описан в документации Tllibs, также с библиотекой поставляются 2 готовых файла: IsoLatinl.enc и IsoLatinZ.enc. Если перекодировка используется постоянно, установите параметр ps.default_encoding в файле конфигурации со значением имени файла перекодировки, который будет загружаться автоматически. ImagePsExtendFont Масштабирование шрифта bool imagepsextendfont (int fontjindex. double extend) ImagePsSlantFont Установка наклона шрифта bool imagepsslantfont (int font_index, double slant) ImagePSBBox Расчет площади, занимаемой строкой шрифта PostScript Type 1 array imagepsbbox (string text, int font, ifft size [, int space [, int tightness [, float angle]]]) Расчеты производятся на основании аргументов: Size — размер шрифта в пикселах; Space — изменение размера пробелов по отношению к нормальному (может быть отрицательным); Tightness — промежутки между символами по отношению к нормальному (может быть отрицательным); Angle — угол наклона строки в градусах. Значения space п tightness измеряются в долях пробела (1/1000). Аргументы space, tightness, angle не обязательны. Результаты расчета недостаточно точны. Функция возвращает массив:
См. также imagepstext(). ImagePSText Вывод текста поверх рисунка шрифтом PostScript Type 1 array imagepstext (int image, string text, int font, int size, int foreground, int background, int x, int у [, int space [, int tightness [, float angle [, int antialias_steps>) Координаты х, у указывают левый нижний угол первого символа. Аргументами Foreground и Background задаются цвета текста и фона (фон необходим только для сглаживания шрифта). Аргумент Antialias_steps позволяет указать число цветов, используемых при сглаживании текста (допустимые значения 4 и 16). Для шрифтов размером меньше 20 используйте большее значение, так как это улучшает читабельность; для больших шрифтов используйте меньшее значение, так как это увеличивает быстродействие. Функция возвращает массив, подобно imagepsbbox(). См. также imagepsbbox(). PHP позволяет создавать файлы Shockwave Flash посредством библиотеки (созданной Paul Haeberli) Libswf, которую можно загрузить с http://reality.sgi.com/grafica/flash/. Прикомпилировать libswf к РНР можно параметром --w1th-swf[=OIR], где DIR — место размещения каталогов include (содержит файл swf.h) и lib (содержит файл libswf.a). Следующий пример демонстрирует создание Flash-анимации: <?php swf_openfile ("test.swf". 256. 256.
30. 1, 1. 1 Просмотреть результат исполнения сценария можно но адресу: libswf не поддерживается Windows. Разработка библиотеки была прекращена, а исходные коды недоступны. swf_openfile Открытие нового файла Shockwave Flash void swf_openfile (string filename, float width, float height, float framerate, float r, float g, float b) Создает файл filename с анимацией (шириной width, высотой height, частотой кадров framerate и цветом фона R.G.B). Данная функция должна вызываться первой, иначе в сценарии возникнет ошибка «segfault». Если необходимо непосредственно отсылать файл браузеру, можно задать его имя как php://stdout. swf_closefile Закрытие текущего файла Shockwave Flash void swf_cl osef "Л е ([int return_file]) Закрывает файл, открытый функцией swf_openfile(). При установке аргумента return_file функция возвращает содержимое SWF-файла. // создает flash й'айл: выводит его и сохраняет в БД <?php swf_labelframe Пометка текущего кадра void swf_labelframe (string name) swf_showframe Отображение текущего кадра void swf_showframe (void); swf_setframe Переключение кадра void swf_setframe (int framenumber) swf_getframe Получение номера текущего кадра int swf_getframe (void); swf_mulcolor Установка множителя цвета RGBA void swfjnul col or (float r, float g, float b, float a) Функция устанавливает значения (они могут быть положительными или отрицательными), на которые будут умножаться цвета выводимых объектов. Этот цвет затем (косвенно) используется функциями swf_placeobject(), swfjnodifyobject() и swf_addbuttonrecord(). swf_addcolor Установка слагаемого цвета RGBA void swf_addco1or (float г, float g, float b, float a) Функция устанавливает значения (они могут быть положительными или отрицательными), которые будут добавляться к цвету выводимых объектов. Этот цвет затем (косвенно) используется функциями swf_placeobject(), swfjnodifyobject() и swf_addbuttonrecord(). swf_placeobject Размещение объекта в текущем кадре void swf_placeobject (int objid, int depth) Размещает объект objid на уровне depth. Аргументы могут иметь значения от 1 до 65 535. При этом используются текущие: множитель и слагаемое цвета (swfjnulcolor() и swf_addcolor()) и матрица позиционирования объекта. Полностью поддерживаются цвета RGBA. swf_modifyobject Изменение объекта void swfjnodifyobject (int depth, int how) Изменяет объект, расположенный на уровне depth, согласно аргументу how: если он имеет значение MOD_MATRIX, то изменяется положение объекта; если MOD_COLOR, то изменяется цвет. Эти константы можно комбинировать (MOD_MATR1X|MOD_COLOR). MOD_COLOR использует текущие множитель и слагаемое цвета (swf_ mulcolor() и swf_addcolor()), a MOD_MATRIX — матрицу позиционирования объекта. swf_removeobject Удаление объекта void swf_removeobject (int depth) Удаляет объект, расположенный на уровне depth. swf_nextid Получение идентификатора следующего свободного объекта int swfjiextid (void); swf_startdoaction Начало описания списка действий текущего кадра void swf_startdoaction (void); Функцию следует вызывать после завершения определения действий. swf_actiongotoframe Проигрывание кадра и остановка void swf_actiongotoframe (int framenumber) swf_actiongeturl Получение URL анимации Shockwave Flash void swf_actiongetur1 (string url, string target) swf_actionnextframe Перемещение вперед на один кадр void swf_actionnextframe (void); swf_actionprevframe Перемещение назад на один кадр void swf_actionprevframe (void); swf_actionplay Начало проигрывания анимации с текущего кадра void swf_actionplay (void) swf_actionstop Остановка flash-анимации текущего кадра void swf_actionstop (void); swf_actiontogglequality Переключение между высоким/низким качеством void swf_actiontogglequality (void); swf_actionwaitforframe Пропуск действия, если кадр не был загружен void swf_actionwaitforframe (int framenumber, int skipcount) Функция проверяет видимость кадра framenumber и, если он не был загружен, пропускает указанное число действий skipcount. Полезно для анимаций типа "Loading...". swf_actionsettarget Установка контекста всех действий void swf actionsettarget (string target) Используется для управления другими flash-анимациями, проигрываемыми в текущий: момент. swf_actiongotolabel Отображение кадра с указанной меткой void swf_actiongotolabel (string label) После отображения проигрывание останавливается. swf_enddoaction Завершение текущего действия I void swf_enddoaction (void). Завершает текущее действие, начатое функцией swf_startdoaction(). swf_defineline Создание линии void swf_defineline (int objid, float xl, float yl, float x2, float y2. float width) Рисует линию ((xl, yl) - (x2, y2)) шириной width. swf_definerect Создание прямоугольника void swf_definerect (int objid, float xl. float yl, float x2, "float y2, float width) Верхний левый угол задается (xl, yl), левый нижний (х2, у2). Ширина задается width (если она равна 0.0, прямоугольник будет закрашен). swf_definepoly Создание многоугольника void swfjdefinepoly (int objid, array coords, int npoints, float width) Углы задаются координатами (х, у) в массиве coords. Число углов — npoints. Ширина задастся width (если она равна 0.0, многоугольник будет закрашен). swf_startshape Начало создания сложной фигуры void swf_startshape (int objid) swf_shapelinesolid Установка текущего стиля линии void swf_shapelinesolid (float г, float g, float b, float a, float width) Задаются параметры цвета rgba и ширина width (если указывается ширина 0.0, то линии рисоваться не будут). swf_shapefilloff Выключение заполнения текущей фигуры void swf_shapefilloff (void); swf _shapefillsolid Установка стиля и цвета заполнения void swf_shapefillsolid (float г, float g, float b, float a) Устанавливает 100 % стиль заполнения цветом swf_shapefillbitmapclip Установка заполнения усеченной текстурой рисунка void swf_shapefillbitmapclip (int bitmapid) swf_shapefillbitmaptile Установка заполнения размноженной текстурой рисунка void swf_shapefillbitmaptile (int bitmapid) swf_shapemoveto Перемещение текущей позиции void swf_shapemoveto (float x, float y) swf_shapelineto Черчение линии void swf_shapelineto (float x, float y) Чертит линию от текущей позиции до указанной. swf_shapecurveto Рисование квадратической кривой Безье void swf_shapecurveto (float xl, float yl. float x2, float y2) Чертит кривую от точки (xl, yl) до точки (х2, у2). Текущая позиция затем устанавливается в точке (х2, у2). swf_shapecurveto3 Рисование кубической кривой Безье 3void swf_shapecurveto3 (float xl. float yl, float x2. float y2. float x3, float y3) Чертит кривую, используя точки (xl, yl) и (х2, у2) как внешне ориентирующие, а точку (хЗ, уЗ) — как конечную. Текущая позиция затем устанавливается в точке (хЗ, уЗ). swf_shapearc Рисование дуги void swf_shapearc (float x, float у, float г, float angl, float ang2) Начальный и конечный угол дуги задается angl и ang2; центр — (х,у); радиус - г. swf_endshape Завершение определения текущей фигуры void swf_endshape (void); swf_definefont Определение шрифта void swf_definefont (int fontid, string fontname) Задает шрифт fontname в качестве текущего и присваивает ему идентификатор fontid. swf_setfont Смена текущего шрифта void swf_setfont (int fontid) swHontsize Смена размера текущего шрифта void swf_fontsize (float size) swHontslant Установка наклона текущего шрифта void swf_fontslant (float slant) Угол задается значением slant (положительное значение создает наклон вперед, отрицательное — назад). swf_fonttracking Установка интервала между буквами void swf_fonttracking (float tracking) Положительное значение увеличивает, а отрицательное — уменьшает интервал. swf_getfontinfo Получение информации о высоте букв array swf_getfontinfo (void); Возвращает ассоциативный массив из двух элементов:
swf_definetext Создание строки текста void swfjlefinetext (int objid. string str, int docenter) Строка текста str создается с использованием текущего шрифта и его размера. Если в значении аргумента docenter указывается 1, то текст центрируется по горизонтали. swf_textwidth Расчет ширины строки float swf_textwidth (string str) Расчет использует размеры текущего шрифта. swf_definebitmap Определение рисунка void swf_definebitmap (int objid, string image_name) Добавляет рисунок GIF, JPEG, RGB или FI (он автоматически конвертируется в формат Flash JPEG или Flash color map). swf_getbitmapinfo Получение информации о рисунке array swf_getbitmapinfo (int bitmapid) Возвращает массив с информацией о рисунке bitmapid, содержащий элементы:
swf_startsymbol Определение символа void swf_startsymbol (int objid) Превращает объект в символ. Символы — это микроанимации flash, которые могут проигрываться одновременно. swf_endsymbol Завершение определения символа void swf_endsymbol (void); Завершает определение символа, начатое функцией swf_startsymbo1(). swf_ startbutton Начало определения кнопки void swf_startbutton (int objid. int type) Аргументом type задается, может ли фокус перемещаться без нажатия на кнопку мышью (TYPE_MENUBUTTON) или нет (TYPE_PUSHBUTTON). swf_addbuttonrecord Управление расположением, видом и активной областью текущей кнопки void swf_addbuttonrecord (int states, int shapeid, int depth) Аргументом states определяется, какие состояния может принимать кнопка: BSHitTest, BSDown. BSOver, BSUp; аргументом shapeid определяется внешний вид кнопки (идентификатор объекта), a depth -уровень расположения кнопки. swf_startButton ($objid. TYPEJCNUBUTTON): swf_oncondition Назначение события void swf_oncondition (int transition) Для кнопок TYPE_MENUBUTTON возможны параметры:
Для кнопок TYPE_PUSHBUTTON возможны параметры:
swf_endbutton Завершение определения текущей кнопки void swf_endbutton (void); swf_viewport Выбор области для.последующего рисования void swf_viewport (double xmin. double xmax. double ymin, double ymax) swf_ortho Выбор объемной системы координат текущей области рисования void swf_ortho (double xmin. double xmax. double ymin, double ymax. double zmin. double zmax) swf_ortho2 Выбор плоской системы координат текущей области рисования 2void swf_ortho2 (double xmin, double xmax, double ymin. double ymax) Для преобразований перспективы может использоваться функция swf_ perspective(). swf_perspective Определение трансформации перспективы проекции void swf_perspective (double fovy. double aspect, double near, double far) Аргумент fovy задает угол зрения по отношению к оси у, aspect — масштаб текущей области рисования. Аргументы near,far определяют границы проекции — ближнюю и дальнюю. Поскольку flash-проигрыватели имеют только двумерную матрицу, возможны искажения проецирования. swf_polarview Установка позиции наблюдения в полярных координатах void swf_polarview(double dist, double azimuth, double Incidence, double twist) dist задает расстояние от наблюдателя до начала системы координат; azimuth — угол азимута в плоскости х,у, измеренный от оси у; incidence — угол обзора в плоскости y,z, измеренный относительно оси z; twist — вращение видимой области относительно линии наблюдения (по правилу правой руки). swf_lookat Установка трансформации наблюдения void swfjookat (double view_x, double view_y. double view_z, double reference_x, double reference_y, double reference_z, double twist) Аргументами view_x, view_y, view_z задается позиция наблюдения; reference_x, reference_y, reference_z указывают наблюдаемую точку; a twi st — угол поворота наблюдения относительно оси z. swf_pushmatrix Занесение текущей матрицы трансформации в стек void swf_pushmatrix (void); swf_popmatrix Извлечение матрицы трансформации из стека void swf_popmatrix (void); swf_scale Масштабирование текущей трансформации void swf_scale (double x. double y, double z) Масштабные коэффициенты задаются аргументами х, у, z. swf_trnslate Транслирование текущей трансформации void swf_translate (double x, double y, double z) swf_rotate Поворот текущей трансформации void swf_rotate (double angle, string axis) Угол поворота angle задается относительно оси axis. Допустимые значения axis: "x", "у" и "z". swf_posround Разрешение или запрет округления координат объектов void swf_posround (int round) Значение 1 разрешает, а 0 запрещает округление. Ming является библиотекой с открытым исходным кодом (LGPL), позволяющей создавать анимации SWF («Flash»). Ming поддерживает почти все возможности Flash 4, включая: фигуры (shapes), цветовые переходы (gradients), картинки (bitmaps: jpeg), превращения (morphs или «shape tweens»), текст, кнопки, действия, клипы (sprites), потоковую музыку трЗ и преобразования цветов; единственное, чего не поддерживает Ming, это звуковые события. Использование Ming предпочтительнее модуля libswf. Ming работает на большинстве платформ, включая Windows, использует РНР объекты для представления объектов SWF и продолжает разрабатываться1 (адрес разработчиков ming@opaque.net). Библиотеку Ming можно загрузить с сайта: http://www.opaque.net/ming/. Все размеры указываются в единицах «твипс» (twips), что равно I 1/20 пиксела. Но масштаб может изменяться проигрывателем. Ming использует PHP-объекты тринадцати классов:
SWFMovie — объект анимации SWF 4 SWFMovie->output Вывод созданной анимации void swfmovie->output (void) Для того чтобы браузер правильно воспринял передаваемый ему файл, используйте PHP-команду отсылки заголовка до вывода анимации: <?php headert'Content-type: apolication/x-Shockwave-flash'); ?> См. также swfmovie->save(). SWFMovie->save Сохранение анимации в файле void swfmovie->save (string filename) См. также output(). SWFMovie->add Добавление компонентов анимации void swfmovie->add (resource instance) Этим методом можно добавлять объекты различных типов: фигуры, текст, шрифты и т. п. Для отображаемых объектов (shape, text, button, sprite) возвращается дескриптор объекта SWFDisplayltemO, внесенный в список отображения. При многократном добавлении одного объекта каждый раз будет возвращаться другой дескриптор. См. также: swfmovie->remove() и пример в swfdisplayitem->rotateto(). SWFMovie->remove Удаление объекта из списка отображения void swfmovie->remove (resource instance) Функция противоположна swfmovie->add(). SWFMovie->setbackground Установка цвета фона void swfmovie->setbackground (int red, int green, int blue) Цвет задается значениями (0-255) компонентов: красного, зеленого и синего. SWFMovie->setdimension Установка ширины и высоты анимации void swfmovie->setdimension (int width, int height) SWFMovie->setrate Установка частоты кадров анимации void swfmovie->setrate (int rate) Значение rate — число кадров в секунду. Анимация будет тормозиться, если проигрыватель не будет успевать перерисовывать кадры. Если одновременно проигрывается звук, то для его нормального воспроизведения частота перерисовки будет при необходимости снижаться. SWFMovie->setframes Установка общего числа кадров анимации void swfmovie->setframes (string number_of_frames) SWFMovie->nextframe Переход к новому кадру анимации void swfmovie->nextframe (void) SWFMovie->streammp3 Воспроизведение потокового звука МРЗ 3void swfmovie->streammp3 (string mpSFileName) Заметьте, что проигрываться будет не весь файл фонового звука целиком, а только та часть, которая успеет воспроизвестись за время воспроизведения установленного числа кадров при текущей частоте кадров. <?php SWFDisplayltem - объект списка отображения Используется для хранения компонентов анимации; после того, как объекты shape, text, sprite или button декларированы (созданы экземпляры классов swfshape(), swfbutton(), swftext(). swfspnte()) и добавлены в анимацию (методом swfmovie->add()), для каждого из них возвращается дескриптор (объект типа SWFDisplayltem), который можно использовать для перемещения, вращения, масштабирования и наклона объекта. SWFDisplayltem - >moveTo Репозиционирование объекта void swfdisplayitem->moveto (int x, int у) Указываются абсолютные координаты. См. также swfdisplayitem->move(). SWFDisplayltem->move Смещение объекта void swfdisplayitem->move (int dx. int dy) Указываются координаты относительно текущей позиции. См. также swfdisplayitem->moveto(). SWFDisplayltem - >scaleTo Задание новых размеров объекта void swfdisplayitem->scaleto (int x, int у) См. также swfdisplayitem->scale(). SWFDisplay!tern->scale Масштабирование объекта void swfdisplayitem->scale (int dx, int dy) Указываются коэффициенты масштабирования. См. также swfdisplayitem->scaleto(). SWFDisplayltem->rotateTo Установка абсолютного угла поворота объекта void swfdisplayitem->rotateto (double degrees) Угол указывается в градусах. <?php // три вращающиеся строки Sthetext = "ming!";
См. также swfdisplayitem->rotate(). SWFDisplayltem->Rotate Поворот объекта void swfdisplayitem->rotate (double ddegrees) Указывается относительный угол поворота в градусах. См. также swfdisplayitem->rotateto(). SWFDisplayltem->skewXTo Установка наклона по X void swfdisplayitem->skewxto (double d) Указывается коэффициент смещения основания вправо, то есть 1.0 означает искажение в 45 градусов. Возможны отрицательные значения для смещения основания влево. См. также: swfdisplayitem->skewx(), swfdisplayitem->skewy() и swfdisplayitem-> skewyto(). SWFDisplayltem->skewX Наклон объекта по X void swfdisplayitem->skewx (double d) SWFDisplayltem->skewYTo Установка наклона по Y void swfdisplayi-tem->skewyto (double degrees) Указывается смещение правой стороны вниз. SWFDisplayltem->skewY Наклон объекта по Y void swfdisplayitem->skewy (double ddegrees) SWFDisplayltem - >setDepth Установка порядка отображения (z-order) void swfdisplayitem->setdepth (double depth) Размещает объект на указанном уровне. (При добавлении следующий объект размещается поверх предыдущего.) SWFDisplayltem->remove Удаление объекта из анимации void swfdisplayitem->remove (void) SWFDisplayltem->setName Присвоение объекту имени void swfdisplayitem->setname (string name) Используется для возможности обращения к объекту при написании программ действий. Полезно только для спрайтов. SWFDisplayltem->setRatio Установка увеличения объекта void swfdisplayitem->setratio (double ratio) Полезно только для объектов SWFMorph(). Приведенный ниже пример создает три концентрических изменяющихся кольца. <?php $р = new SWFMorphC); SWFDisplayltem->addColor Увеличение значений компонентов цвета void swfdisplayltem->addco"lor ([integer red [. integer green [, integer blue [, integer a>) SWFDisplayltem->multColor Умножение значений компонентов цвета void swfdisplayitem->multcolor ([integer red [. integer green [, integer blue [. integer a>) <?php $b = new SWFB1traapCbackyard.jpg"); SWFShape - объект Фигура <?php $m = new SWFMovie() ; SWFShape->setLine Установка типа линий фигуры void swfshape->setline (Int width [, integer red , integer green , integer blue [, integer a]]) Число аргументов может быть 1, 4 или 5 (но не 3 или 2). Для линии задается ширина width, цвет (значениями компонент красного, зеленого и синего) и альфа-параметр. <?php $s = new SWFShape(): SWFShape->addFill Задание стиля заливки void swfshape->addfill (Integer red. Integer green, Integer blue [, Integer a]) void swfshape->addfill (SWFbitmap bitmap [, integer flags]) void swfshape->addfill (SWFGradient gradient [, integer flags]) Возможны три стиля заливки (см. синтаксис): цветом, рисунком, градиентная заливка. Для ригунка задастся дескриптор объекта swfbitmap() и необязательный параметр SWFFILL_CLIPPED_BITMAP (обрезанный рисунок) или SWFFILL_ TILED_BITMAP (размноженный рисунок, по умолчанию). Для градиентной заливки задается дескриптор объекта swfgradientO и необязательный параметр SWFFILL_RADIAL_GRADIENT или SWFFILL_ LINEAR_GRAOIENT (линейный, по умолчанию). Возвращает дескриптор объекта swffill() для использования в функциях swfshape->setleftfill() и swfshape->setrightfill(). <?php $Р . new SWFMorph(). SWFShape->setLeftFill Заливка фигуры налево void swfshape->setleftfill (swfgradient fill) void swfshape->setleftfill (int red. int green, int blue [. int a]) Если браузер отказывается закрашивать фигуру, попробуйте закраску с другой стороны. Второй вариант является аббревиатурой swfshape->setleftfiTI($s-> addfill($r. $g, $b [, $a]));. См. также swfshape->setrightfill(). SWFShape->setRightFill Заливка фигуры направо void swf shape->setnghtf nil (swfgradient fill) void swfshape->setrightfill (int red. int green, int blue [, int a]) См. также swfshape->setleftfi"ll(). SWFShape->movePenTo Задание точки вывода void swfshape->raovepento (integer x, integer y) Указывается точка, от которой будет чертиться фигура. См. также: swfshape->movepen(), swfsh"ape->drawcurveto(), swfshape-> drawlineto() и swfshape->drawline(). SWFShape->movePen Смещение точки вывода void swfshape->movepen (integer dx, integer dy) См. также: swfshape->movepento(), swfshape->drawcurveto(), swfshape-> drawlineto() и swfshape->drawline(). SWFShape->drawLineTo Черчение линии void swfshape->drawlineto (integer x, integer y) Создает линию (используя текущий стиль) от текущей точки вывода до указанной. См. также: swfshape->movepento(), swf shape ->drawcurveto(), swfshape-> movepen(), swfshape->drawline(). SWFShape->drawLine Проведение отрезка void swfshape->drawline (integer dx, integer dy) См. также: swf shape->movepento(), swfshape->drawcurveto(), swfshape-> movepen() и swfshape->drawlineto(). SWFShape->drawCurveTo Черчение кривой void swfshape->drawcurveto (int controlx, int controly, int endx, int endy) Создает квадратичную кривую (используя текущий стиль) от текущей точки вывода до указанной (endx, endy), используя точку (endx, endy) как ориентирующую. См. также: swfshape->drawlineto(), swfshape->drawline(), swfshape-> movepento() и swfshape->movepen(). SWFShape->drawCurve Проведение кривой void swfshape->drawcurve (int controldx. int controldy, int dx, int dy) Координаты указываются относительные. SWFGradient — объект градиентной заливки Градиентные заливки используются для заполнения фигур методом swfshape->addfilH). В результате выполнения этого простого примера на фоне черно-белой градиентной заливки будет создан по центру красноватый диск. <?php $m = new SWFMovie() : $m->set.Dimension(320.
240): SWFGradient- >add Entry Добавление экстремума градиентной заливки void swfgradient->addentry (double ratio, int red, int green, int blue [, int a]) Аргумент ratio указывает позицию диапазона градиентной заливки (от 0 до 1), для которой указывается цвет. Необязательным аргументом а указывается прозрачность (0—255). SWFBitmap - загрузка рисунка new swfbitmap (string filename [, integer alphafilename]) i Загружает рисунок из файла JPEG или DBL-файла filename. Можно указать дополнительный рисунок alphafilename для использования в качестве альфа-маски. JPEG-рисунок должен быть в формате baseline (frame 0), другие форматы — baseline optimized и progressive scan jpeg — не поддерживаются. Импортировать рисунки PNG напрямую нельзя, хотя можно использовать утилиту png2dbl для конвертирования в формат DBL («define bits lossless»). <?php $s = new SWFShape(): Пример с использованием альфа-маски: <?php $s = new SWFShape(): SWFBitmap->getWidth Установка ширины рисунка в пикселах int swfbitmap->getwidth (void) См. также swfbitmap->getheight(). SWFBitmap->getHeight Установка высоты рисунка в пикселах int swfbitmap->getheight (void) См. также swfbitmap->getwidth(). SWFFill — объект Заполнитель С помощью этого объекта можно трансформировать (масштабировать, наклонять, вращать) рисунки и градиентные заливки, используемые как заполнители. Этот объект создается методом swfshape ->addfil1(). SWFFill->moveTo Установка точки, от которой начинается заполнение void swffill->movetc (integer x, integer y) SWFFill->scaleTo Установка масштаба заполнителя void swffill->scaleto (integer kx, integer ky) SWFFill->rotateTo Установка угла поворота заполнителя void swffill->rotateto (double degrees) SWFFill->skewXTo Установка угла х-наклона заполнителя void swffill->skewxto (double x) Указывается коэффициент смещения основания вправо, то есть 1.0 означает искажение в 45 градусов. Возможны отрицательные значения для смещения основания влево. SWFFill->skewYTo Установка у-наклона заполнителя void swffill->skewyto (double у) Указывается смещение правой стороны вниз. SWFMorph — объект Превращение Объект представляет собой превращение одной фигуры в другую («shape tween»). В приведенном ниже примере большой красный квадрат, вращаясь, превращается в маленький синий. <?php $р = new SWFMorph(). SWFMorph->getshape1 Установка начальной фигуры превращения Imixed swfmorph->getshapel (void) Возвращает объект swfshape(). SWFMorph->getshape2 Установка конечной фигуры превращения 2mixed swfmorph->getshape2 (void) Возвращает объект swfshape(). SWFText — объект текста <?php$f new SWFFontt"Techno fdb"); SWFText->setFont Установка текущего шрифта void swftext->setfont (font) SWFText->setHeight Установка высоты шрифта void swftext->setheight (integer height) Значение но умолчанию — 240. SWFText->setSpacing Установка расстояния между символами void swftext->setspacing (double spacing) Значение по умолчанию — 1.0. Значение 0 указывает, что следующий символ будет выводиться непосредственно за последним. Вычисления не отличаются точностью. SWRext->setColor Установка цвета шрифта void swftext->setcolor (int red, int green, int blue [, int a]) Значение по умолчанию — черный. SWRext->moveTo Установка позиции вывода void swftext->moveto (integer x. integer y) SWFText->addString Рисование строки void swftext->addstring (string string) SWFText->getWidth Вычисление ширины строки double swftext->addstring (string string) Возвращает размер с учетом размеров шрифта, масштаба и т. п. SWFFont — Загрузка шрифта new swffont (string filename) В аргументе указывается имя FDB-файла или имя шрифта, поддер живаемого браузером. Формат FDB («font definition block») содер жит описание шрифта следующего вида: «SWF DefineFont2 block». Файл FDD можно получить из файлов-шаблонов «SWT Generator» с помощью утилиты makefdb библиотеки ming. Три специальных шрифта должны быть доступны всегда: _serif, _sans и _typewriter. <Php $f - newSWFFont("_sans"): ?> Дескриптор шрифта, возвращенный swffont(), используется как аргумент методов SWFText->setFont() и SWFTextField->setFont(). swffont->getwidth Вычисление ширины строки int swffont->getwidth (string string) Метод подобен методу SWFText(), но используется значение масштаба по умолчанию. SWFTextField — объект текстового поля new swftextfield ([int flags]) Текстовые ноля менее функциональны, нежели объекты swftext(): их нельзя вращать, непропорционально масштабировать, наклонять, но они могут использоваться для ввода в формах и использовать шрифты браузера. Поведение поля можно изменить, указав необязательные флаги; следующие значения можно комбинировать, используя битовый оператор ИЛИ:
Например, следующая строка создает поле с нсвыделяемым и нередактируемым текстом: $t = newSWFTextField(SWFTEXTFIELD_NOSELECT SWFTextField->setFont Установка шрифта поля void swftextfield->setfont (string font) SWFTextField->setbounds Установка ширины и высоты поля void swftextfield->setbounds (int width, int height) SWFTextField->align Установка выравнивания текста в поле void swftextfield->align (int alignement) Допустимые значения аргумента: SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER и SWFTEXTFIELD_ALIGN_JUSTIFY. SWFTextField->setHeight Установка высоты шрифта текстового поля void swftextfield->setheight (int height) Значение по умолчанию — 240. SWFTextField->setLeftMargin Установка ширины левого отступа поля void swftextfield->setleftmargin (int width) Значение по умолчанию — 0. SWFTextField->setrightMargin Установка ширины правого отступа поля void swftextfield->setrightmargin (int width) Значение по умолчанию — 0. SWFTextField - >setM argi ns Установка ширины левого и правого отступов поля void swftextfield->setmargins (int left, int right) Это комбинация двух вышеописанных методов. SWFTextField->setindentation Установка ширины отступа первой строки void swftextfield->setindentation (int width) SWFTextField->setLineSpacing Установка межстрочного расстояния void swftextfield->set1inespacing (int height) Значение по умолчанию — 40. SWFTextField->setcolor Установка цвета поля void swftextfield->setcolor (int red, int green, int blue [, int a]) Значение по умолчанию — прозрачный. SWFTextField->setname Присвоение полю имени void swftextfield->setname (string name) Используется при отсылке данных формы и для выполнения действий. SWFTextField->addstring Добавление строки к тексту поля void swftextfield->addstring (string string) SWFSprite — создание клипа (sprite) Спрайт («movie clip») позволяет создавать анимации с собственной системой отсчета времени. Поэтому спрайты функционируют подобно основным анимациям. <?php $ь - new SWFShape(); SWFSprite->add Добавление объекта к спрайту void swfsprite->add (resource object) Этот метод позволяет добавлять объекты swfshape(), swfbutton(), swftext(), swfaction(), swfsprite(). Метод возвращает дескриптор объекта в списке отображения. SWFSprite->remove Удаление объекта из спрайта void swfsprite->remove (resource object) Метод, обратный предыдущему. SWFSprite->setframes Установка общего числа кадров void swfsprite->setframes (integer numberofframes) SWFSprite->nextframe Переход к следующему кадру void swfsprite->nextframe (void) SWFbutton — объект Кнопка Приведенный ниже пример отслеживает события кнопки. <?php $f new SWFFont("_senf"): Следующий пример позволяет перетаскивать кнопку по экрану. <?php $s = new SWFS^dpe'): SWFbutton->addShape Назначение кнопке фигуры void swfbutton->addshape (resource shape, integer flags) Возможны флаги: SWFBUTTONJJP, SWFBUTTONJWER, SWFBUTTON_DOWN, SWFBUHON_ HIT. Кнопка SWFBUTTON_HIT не отображается, а определяет область, реагирующую на нажатия. SWFbutton->setUp Синоним addShape (shape, SWFBUTTON_UP) void swfbutton->setup (resource shape) См. также: swfbutton->addshape() и SWFAction(). SWFbutton ->setOver Синоним addShape (shape, SWFBUTTON_OVER) void swfbutton->setover (resource shape) SWFbutton->setdown Синоним addShape (shape, SWFBUTTON_DOWN)) void swfbutton->setdown (resource shape) SWFbutton->setHit Синоним addShape (shape, SWFBUTTON_HIT) void swfbutton->sethit (resource shape) SWFbutton->addAction Назначение кнопке действия void swfbutton->addaction (resource action, integer flags) Назначает обработчик событий кнопки (action — дескриптор объекта swfactionO) для следующих событий (flags): SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SUFBUTTON_MOUSEUP, SWFBuTTONJOUSEUPOuTSIDE, SWFBUTTON_ MOUSEDOWN, SWFBUnON_DRAGOUT и SWFBUTTON_DRAGOVER. SWFbutton->setAction Синоним addAction (shape, SWFBUTTON_MOUSEUP) void swfbutton->setaction (resource action) Назначает кнопке действие, выполняемое при нажатии. SWFAction — объект Действие Объект компилирует сценарий в действие. Синтаксис сценариев подобен упрощенному синтаксису С. SWF code machine не позволяет многих вещей, например, достаточно сложно реализовать вызовы пользовательских функций. Компилятор распознает следующие инструкции:
Все данные не имеют типа; значения SWF-действий сохраняются как строки. Следующие функции могут использоваться в выражениях:
Также могут быть использованы дополнительные команды:
Клипы и анимации имеют следующие свойства:
Например, установить значение позиции спрайта можно выражением Bох.х = 100;. Поскольку Flash сохраняет все компоненты анимации в древовидной структуре (наподобие файловой системы Unix), начальный слеш указывает на массив объектов верхнего уровня; если спрайт box находится внутри спрайта biff, то выражение записывается так: box/biff.x = 100;. Следующий пример перемещает красный квадрат по экрану. <?php $s = new SWFShape(): Приведенный ниже пример отслеживает перемещение мыши по экрану. <?php Тот же сценарий, но с цветными шариками... <?рhр $т - new SWFMovie(): Следующий пример отслеживает нажатия клавши. Необходимо, чтобы фокус окна был активен. <?php /* спрайт с буквой в каждом кадре */ PDF-функции позволяют PHP создавать PDF-файлы с помощью библиотеки PDF, созданной Томасом Мерзем (http://www.pdflib.com/ pdflib/index.html); также могут потребоваться библиотеки JPEG (ftp:// ftp.uu.net/graphics/jpeg/) и TIFF (http://www.libtiff.org/). С pdflib поставляется хорошая документация, описывающая возможности библиотеки. Имена функций и аргументы идентичны в библиотеке и РНР. Размеры и координаты измеряются в единицах Postscript (72 на дюйм), но это зависит от выбранного разрешения. Аналогом библиотеки является ClibPDF (см. ниже). Версии ниже 3.0 pdflib не поддерживаются в РНР 4. Для компиляции РНР с библиотекой pdflib используйте параметр — enable-shared-pdftib. <?php $fp = fopenC'test.pdf". "w"): Пример из комплекта pdflib создает документ, состоящий из страниц с изображением часов (каждая страница показывает текущее время создания): <?php $pdffilename = "clock.pdf": // имя файла
pdf_set_info Заполнение поля информации документа void pdf set_info (int pdf_document. string fieldname, string value) Возможные поля fieldname: «Subject», «Title», «Creator», «Author», «Keywords» и одно, определяемое пользователем. Функция должна вызываться до создания страниц. <?рhр $fd = fopent"test.pdf". "w"): Эта функция заменяет собой pdf_set_infoj<;e.ywords(), pdf_set_info_ title(), pdf_set_info_subject(), pdf_set_info_creator(), pdf_set_info_ sybject(). pdf_open Открытие нового документа pdf 'int pdf_open (int file) Функция делает файл, открытый функцией fopen(), документом pdf. Если не указывать дескриптор файла, он создается в памяти и затем может выводиться на стандартный поток вывода или отсылаться браузеру. Функция возвращает дескриптор документа, который следует указывать в последующих pdf-функциях. См. также: fopen(), pdf_close(). pdf_close Закрытие документа pdf void pdf_close (int pdf_document) См. также: pdf_open(), fclose(). pdf begin_page Начало новой страницы void pdf_begin_page (int pdf_document, double width, double height) Аргументы height и width задают высоту и ширину страницы. После внесения на страницу информации ее следует закрыть функцией pdf_end_page(). См. также pdf_end_page(). pdf_end_page Завершение страницы void pdf_end_page (int pdf_docuraent) После этого модификация этой страницы невозможна. См. также pdf_begin_page(). pdf_show Вывод текста в текущую позицию void pdf_show (int pdf_document, string text) Для вывода используются текущая позиция и текущий шрифт. См. также: pdf_show_xy(), pdf_show_boxed(), pdf_set_text_pos(), pdf_set_ font(). pdf_show_boxed Вывод текста в прямоугольную область int pdf_show_boxed (int pdfjJocument, string text, double x, double y. double width, double height, string mode [, string feature]) Левый нижний угол области вывода задается (х,у); высота и ширина — height, width. Аргумент mode определяет выравнивание текста: если высота и ширина равна нулю, то возможны значения: «left», «right» или «center», если они не равны нулю, то — «justify» или «full justify». Если аргумент feature содержит значение «blind», текст не отображается. Возвращает число символов, которые не поместились в указанный прямоугольник. См. также: pdf_show(), pdf_show_xy(). pdf_show_xy Вывод текста в указанную позицию void pdf_show_xy (int pdf_doc, string text, double x, double y) См. также: pdf_show(), pdf_show_boxed(). pdf_set_font Выбор шрифта, его размера и кодировки void pdf_set_font (int pdf_document, string fontjiame, double size, string encoding [, int embed]) Аргумент вида кодировки encoding может принимать значения: «win-ansi» (по умолчанию), <-builtin», «host», «macroman» и т. п. Если для последнего аргумента задано значение 1, шрифт будет внедрен в документ pdf (иначе, нет). Если шрифт распространен, внедрять его не следует из-за увеличения размера документа. Функция должна вызываться после pdf_begin_page(). pdf_ set_ leading Установка промежутка между строками текста void pdf_set_leading (int pdf_document, double distance) Используется при выводе текста функцией pdf_continue_text(). См. также pdf continue text(). pdf_set_parameter Установка строкового значения параметра pdflib void pdf_set_parameter (Int pdf_document, string name, string value) См. также: pdf_get_value(), pdf_set_value(), pdf_get_parameter(). pdf_get_parameter Получение строкового значения параметра pdflib string pdf_get_parameter (int pdf_doc, string name [, double modifier]) Аргумент modifier используется при необходимости. См. также: pdf_get_value(), pdf_set_value(), pdf_set_parameter(). pdf_set_value Установка численного значения параметра pdflib void pdf_set_value (int pdf_document, string name, double value) См. также: pdf_get_value(), pdf_get_parameter(), pdf_set_parameter(). pdf_get_value Получение численного значения параметра pdflib double pdf_get_value (int pdf_document, string name [, double modifier]) Аргумент modifier используется при необходимости. См. также: pdf_set_value(), pdf_get_parameter(), pdf_set_parameter(). pdf_set_text_rendering Установка метода вывода текста void pdf_set_text_rendering (int pdf_document, int mode) Устарела, используйте PDF_set_value(). pdf_set_horiz_scaling Установка масштабирования текста по горизонтали void pdf_set_horiz_scaling (int pdf_document, double scale) pdf_set_text_rise Установка подъема текста void pdf_set_text_rise (int pdf_document, double rise) pdf_set_text_matrix Установка матрицы преобразования шрифта void pdf_set_text_matrix (Int pdf_document, array matrix) Начиная с версии pdflib 2.3 эта функция недоступна. pdf_set_text_pos Установка позиции текста void pdf_set_text_pos (int pdf_document, double x-coor, double y-coor) Устанавливает позицию вывода текста последующим вызовом pdf_ show(). См. также: pdf_show(), pdf_show_xy(). pdf_set_char_spacing Установка интервала между символами void pdf_set_char_spacing (int pdf_document, double space) Устарела, используйте PDF_set_value(). См. также: pdf_set_word_spacing(), pdf_set_leading(). pdf_set_word_spacing Установка интервала между символами void pdf_set_word_spacing (int pdf_document, double space) Устарела, используйте PDF_set_value(). См. также: pdf_set_char_spacing(), pdf_set_leading(). pdf_skew Поворот системы координат void pdf_skew (int pdf_document, double alpha, double beta) \ Угол поворота в градусах указывается относительно осей alpha (x) и beta (у). Углы не могут принимать значения 90 или 270 градусов. pdf_continue_text Вывод текста со следующей строки void pdf_continue_text (int pdf_docuraent, string text) Расстояние между строками может быть установлено функцией pdf_set_leading(). См. также: pdf_show_xy(), pdf_set_leading(), pdf_set_text_pos(). pdf_stringwidth Вычисление ширины текста double pdf strnngwidth (int pdf document, string text) При вычислении длины строки используется текущий шрифт. Предварительно шрифт должен быть установлен с помощью pdf_set_font(). См. также pdf_set_font(). pdf_save Сохранение текущих установок void pdf_save (int pdf_document) Действует подобно команде postscript gsave. Полезна при необходимости масштабировать или развернуть объект, не воздействуя на другие объекты. pdf_save() требует, чтобы затем была вызвана функция pdf_restore(). См. также pdf_restore(). pdf_restore Восстановление ранее сохраненных установок void pdf_restore (int pdf_document) Восстанавливает установки, сохраненные pdf_save(). Действует подобно команде postscript grestore. <?php rdf_save($pdf): См. также pdf_save(). pdf_translate Установка начала системы координат j void pdf_translate (int pdf_document, double x, double y) Координаты указываются относительно текущей точки отсчета. Затем, до начала рисования объектов, требуется установить текущую точку. <?php pdf_moveto($pdf. 0. 0). pdf_lireto pdf_scale Установка масштабирования void pdf_scale (int pdf_document, double x_scale, double y_scale) <?pho pdf_scale($pdf. 72 0, 72.0). pdf_rotate Установка угла вращения в градусах void pdf_rotate (int pdf_document, double angle) pdf_setflat Установка равномерности void pdf_setflat (int pdf_document, double value) Возможные значения параметра — от 0 до 100. pdf_setlinejoin Установка параметра linejoin void pdf_setlinejoin (int pdf_document. long value) Возможные значения параметра — от 0 до 2. pdf_setlinecap Установка параметра linecap void pdf_setlinecap (int pdf document, int value) Возможные значения параметра — от 0 до 2. pdf_setmiterlimit Установка параметра miter limit void pdf_setmiterlimit (int pdf_document. double value) Возможные значения параметра — 1 и более. pdf_setlinewidth Установка ширины строк void pdf_setlinewidth (int pdf_document. double width) pdf_setdash Установка вида штриховки void pdf_setdash (int pdf_document. double white, double black) Устанавливает размер белых и черных полос. Если оба аргумента равны 0, то линия будет непрерывной. pdf_moveto Установка текущей точки void pdfjnoveto (int pdf_document, double x, double y) pdf_curveto Черчение кривой void pdf_curveto (int pdf_document, double xl, double yl, double x2, double y2, double x3, double y3) Чертит кривую Безьс от текущей точки до (хЗ.уЗ), используя точки (xl.yl) и (х2,у2) как ориентирующие. См. также: pdfjnoveto(), pdf_lineto(), pdf_stroke(). pdf_lineto Черчение отрезка void pdfjineto (int pdf_document, double x, double y) Чертит линию от текущей точки до указанной (х,у). См. также: pdf_moveto(), pdf_curveto(), pdf_stroke(). pdf_circle Черчение окружности void pdf_circle (int pdf_document, double x, double y, double radius) См. также: pdf_arc(), pdf_stroke(). pdf_arc Черчение дуги void pdf_arc (int pdf_document, double x, double y, double radius, double start, double end) Начальный и конечный угол задаются start и end. См. также: pdf_circle(), pdf_stroke(). pdf_rect Черчение прямоугольника void pdf_rect (int pdf_document, double x, double y, double width, double height) Левый нижний угол задается (х,у); высота и ширина — height, width. См. также pdf_stroke(). pdf_closepath Завершение текущего пути void pdf_closepath (int pdf_document) Чертит линию от текущей точки до точки, где начиналась первая линия. Многие функции, например pdfjnovetoO, pdf_circle(), pdf_rect(), начинают новый путь. pdf_stroke Заштриховка пути void pdf_stroke (int pdf_document) Текущий путь — это совокупность всех линий. Без этой функции линии начерчены не будут. См. также: pdf_closepath(), pdf_c1osepath_stroke(). pdf_closepath_stroke Черчение и закрытие пути void pdf_closepath_stroke (int pdf_document) Это комбинация pdf_closepath() и pdf_stroke(). См. также: pdf_closepath(), pdf_stroke(). pdf_fill Заполнение пути цветом void pdf_fill (int pdf_document) См. также: pdf_closepath(), pdf_stroke(), pdf_setgray_fill(), pdf_setgray(), pdf_setrgbcolor_fiTl (), pdf_setrgbcolor(). pdf_fill_stroke Заполнение пути цветом и закрытие его void pdf_fill_stroke (int pdf_document) См. также: pdf_closepath(), pdf_stroke(), pdf_fill(), pdf_setgray_fill(), pdf_setgray(), pdf_setrgbcolor_fill(), pdf_setrgbcolor(). pdf_closepath_fill_stroke Черчение, закрашивание и закрытие пути void pdf_dosepath_fin_stroke (int pdfjjocument) См. также: pdf_closepath(), pdf_stroke(), pdf_fill(), pdf_setgray_fill()) pdf_setgray(), pdf_setrgbcolor_fiTI(), pdf_setrgbcolor(). pdf_endpath Завершение пути без его закрытия void pdf_endpath (int pdf_document) См. также pdf_dosepath(). pdf_clip Прикрепление всех линий к текущему пути void pdf_c!ip (int pdf_docuraent) pdf_setgray_fill Установка заполнения серым цветом void pdf_setgray_fill (int pdfjjocument, double gray_value) См. также pdf_setrgbcolor_fill (). pdf_setgray_stroke Установка штриховки серым цветом void pdf_setgray_stroke (int pdf_document, double gray_value) См. также pdf_setrgbcolor_stroke(). pdf_setgray Установка заполнения и штриховки серым цветом void pdf_setgray (int pdf_document, double grayj/alue) См. также: pdf_setrgbcolor_stroke(), pdf_setrgbcolor_fill(). pdf_setrgbcolor_fill Установка заполнения цветом rgb void pdf_setrgbcolor_fill (int pdf_document, double red_value, double green_value, double blue_value) См. также pdf_setrgbcolor_fill(). pdf_setrgbcolor_stroke Установка штриховки цветом rgb void pdf_setrgbcolor_stroke (int pdfjjocument, double red_value, double green_value, double blue_value) См. также pdf_setrgbcolor_stroke(). pdf_setrgbcolor Установка заполнения и штриховки серым цветом rgb void pdf_setrgbcolor (int pdf_document, double red_value, double green_value, double blue_value) См. также: pdf_setrgbcolor_stroke(), pdf_setrgbcolor_fill(). pdf_add_outline Добавление закладки для текущей страницы int pdf_add_outline (int pdf_ document, string text [, int parent [, int open]]) Название закладки определяется аргументом text. Она становится дочерним объектом объекта parent и по умолчанию открыта (если аргумент open не равен 0). Возвращается идентификатор закладки, который может использоваться как родительский для других закладок. pdf_set_transition Установка режима перехода между страницами void pdf_set_transition (int pdf_document, int transition) Используйте функцию PDF_set_parameter() с параметром «transition». См. также pdf_set_duration(). pdfset_duration Установка интервала между страницами void pdf_set_duration (int pdfjiocument, double duration) См. также pdf_set_transition(). pdf_open_gif Открытие рисунка GIF int pdf_open_gif (int pdf_document, string filename) Используйте функцию pdf_open_image_file(). <?php $im = pdf_open_gif($pdf. "test.gif"):
pdfopen_png Открытие рисунка PNG int pdf_open_png (int pdf, string png_file) Используйте функцию pdf_open_image_file(). pdf_openjpeg Открытие рисунка JPEG int pdf_ppen_jpeg (int pdf_document, string filename) Используйте функцию pdf_open_image_file(). pdf_open_tiff Открытие рисунка TIFF int pdf_open_tiff (int PDF-document, string filename) Используйте функцию pdf_open_image_file(). pdf_open_image_file Чтение рисунка из файла int pdf_open_image_file (int PDF_document, string format, string filename) Загружает рисунок формата format из файла filename и возвращает его идентификатор. Возможные форматы: PNG, TIFF, JPEG и GIF. <?php $pim = pdf_open_image_file Функция заменяет pdf_open_jpeg(), pdf_open_gif(), pdf_open_tiff(), pdf_ open_png(). См. также: pdf_close_image(), pdf_execute_image(), pdf_place_image(), pdf_ put_image(). pdf_open_memory_image Открытие рисунка, созданного графическими функциями PHP int pdf_open_memory_image (int pdfjJocument, int image) Функция принимает дескриптор рисунка, созданного PHP, и делает его доступным для документа pdf. Функция возвращает идентификатор рисунка pdf. <?php // Example: Including a memory image См. также: pdf_clo.scjmage(), pdf_executejmage(), pdf_place_image(), pdf_ put_iraage(). pdf_closejmage Закрытие рисунка void pdf_close_image (int image) Закрывает рисунок, открытый функциями pdf_open_ (). См. также: pdf_open_jpeg(), pdf_open_gif(), pdf_open_memory_image(). pdf_get_image_height Установка высоты рисунка в пикселах string pdf_get_image_height (int pdf_document, int image) См. также: pdf_open_image_file(), pdf_open_memory_image(), pdf_get_image_ width(). pdf_get_image_width Установка ширины рисунка в пикселах string pdf_get_image_width (int pdf_document. int image) См. также: pdf_open_itnage_file(), pdf_openjnemory_image(), pdf_get_image_ height(). pdf_placejmage Размещение рисунка на странице void pdf_p!ace_image (int pdf_doc, int image, double x, double y, double scale) Позиция размещения задается (х,у); масштаб — scale. См. также pdf_put_image(). pdf_put_image Сохранение рисунка в PDF для дальнейшего использования void pdf_put_inage (int pdf_document, int image) Внедряет рисунок в документ без его отображения. Затем рисунок может быть размещен на странице функцией pdf_execute_image() необходимое число раз. Полезно при многократной вставке рисунка (уменьшается размер файла). Начиная с версии 2.01 pdflib функция бесполезна и выводит только предупреждение. См. также: pdf_place_image(), pdf_execute_image(). pdf_execute_image Размещение сохраненного рисунка на странице void pdf_execute_image (int pdf_document, int image, double x, double y, double scale) : Отображает рисунок, внедренный функцией pdf_put_image(). Начиная с версии 2.01 pdflib функция бесполезна и выводит только предупреждение. Example I. Multiple show of an image pdf__add_annotation Добавление примечания void pdf_add_annotation (int pdf_document, double llx. double lly, double urx. double ury, string title, string content) Примечание располагается в левом нижнем углу (Их, Пу), верхний правый угол (urx. ury). pdf_set_border_style Установка стиля обрамления примечаний и гиперссылок void pdf_set_border_style (int pdf_document. string style, double width) Аргумент style может принимать значения «solid» или «dashed». Ширина задастся аргументом width. См. также: pdf_set_border_color(). pdf_set_border_dash(). pdf_set_border_color Установка цвета обрамления ссылок и примечаний void pdf_set_border_color (int pdf_document, double red, double green, double blue) Три компонента цвета могут принимать значения из диапазона от 0.0 до 1.0. См. также: pdf_set_border_style(), pdf_set_border_dash(). pdf_set_border_dash Установка стиля окантовки ссылок и примечаний void pdf_set_border_dash (int pdf_document. double black, double white) Устанавливает длину черных и белых полос прерывистых линий. См. также: pdf_set_border_style(), pdf_set_border_color(). Библиотека ClibPDF позволяет PHP создавать документы PDF. Она не является полностью свободно распространяемой. Библиотека действует подобно pdflib, но создает документы меньшего размера с большей скоростью. При необходимости воспользуйтесь документацией, поставляемой с ClibPDF. Все функции, за исключением cpdf_open(), принимают в качестве своего первого аргумента дескриптор открытого документа. В настоящее время ClibPDF, в отличие от pdflib, не позволяет одновременно работать с несколькими документами. Но она способна создавать документы в памяти, не используя временный файл. Возможно также модифицировать любую страницу. <?php defineC'PPM". 2.83464566929): Пример из комплекта pdflib можно использовать для сравнения двух библиотек. <?php Sradius - 200- cpdf_global_set_document_limits Установка ограничения для всех документов void cpd8f_global_set_document_limits (int maxpages. int maxfonts, int maximages, int raaxannotations. int maxobjects) Функцию следует вызывать до cpdf_open(). См. также cpdf_open(). cpdf_set_creator Заполнение поля «создатель документа» void cpdf_set_creator (string creator) См. также: cpdf_set_subject(), cpdf_set_title(), cpdf_set_keywords(). cpdf_set_title Заполнение поля «заголовок документа» void cpdf_set_title (string title) См. также: cpdf_set_subject(), cpdf_set_creator(), cpdf_set_keywords(). cpdf_set_subject Заполнение поля «тема документа» void cpdf_set subject (string subject) См. также: cpdf_set_title(), cpdf_set_creator(), cpdf_set_keywords(). cpdf_set_keywords Заполнение поля «ключевые слова документа» void cpdf_set_keywords (string keywords) См. также: cpdf_set_tit!e(), cpdf_set_creator(), cpdf_set_subject(). cpdf_open Открытие нового документа int cpdf_open (int compression [, string filename]) Первым аргументом можно указать необходимость сжатия документа (если он не равен 0). Если указывается второй аргумент, то документ будет создаваться в файле, а не в памяти. Имя файла «-» указывает на стандартный поток вывода (это пока не работает с Apache). Возвращаемый дескриптор используется всеми после/чующими функциями. См. также: cpdf_close(), cpdf_output_buffer(), cpdf_save_to_file(). cpdf_close Закрытие документа pdf void cpdf_close (int pdfjJocument) Эту функцию следует вызывать последней, даже после cpdf_finalize(), cpdf_output_buffer() или cpdf_save_to_file(). См. также cpdf_open(). cpdf_page_init Начало новой страницы void cpdf_page_init (int pdf_document, int pagejiumber, int orientation, double height, double width [, double unit]) Параметры новой страницы: page_number — ее номер, orientation — ориентация (0 — вертикальная, 1 — горизонтальная), высота height и ширина width; необязательный аргумент unit указывает разрешение в точках на дюйм (по умолчанию — 72). См. также cpdf_set_current_page(). cpdf_finalize_page Завершение указанной страницы void cpdf_finalize_page (int pdf_document, int page_number) После этого страница не может модифицироваться. См. также cpdf_page_init(). cpdf_finalize Завершение документа void cpdf_fina!ize (int pdf_document) После этого необходимо вызвать cpdf_close(). См. также cpdf_close(). cpdf_output_buffer Вывод документа из буфера памяти void cpdf_output_buffer (int pdf_document) Выводит документ на стандартный поток вывода (отсылает браузеру). Для этого документ должен быть создан в памяти (а не в файле). См. также cpdf_open(). cpdf_save_to_file Запись документа в файл void cpdf save_to_file (int pdf_document, string filename) Функция не требуется, если документ изначально создавался в файле. См. также: cpdf_output_buffer(), cpdf_open(). cpdf_set_current_page Установка текущей страницы void cpdf_set_current_page (int pdf_document, int page number) Все последующие операции будут проводиться на данной странице. Между страницами можно переключаться до вызова cpdf_fina1ize_ page(). См. также cpdf_finalize_page(). cpdf_begin_text Начало текстового раздела void cpdf_begin_text (int pdf_document) Раздел должен быть завершен функцией cpdf_end_text(). <?php cpdf_begi n_text($pdf); См. также cpdf_end_text(). cpdf_end_text Завершение текстового раздела void cpdf_end_text (int pdf_document) Завершает раздел, начатый cpdf_begin_text(). См. также cpdf_begin_text(). cpdf_show Вывод текста в текущую позицию void cpdf_show (int pdf_document, string text) См. также: cpdf_text(), cpdf_begin_text(), cpdf_end_text(). cpdf_show_xy Вывод текста в указанную позицию void cpdf_show_xy (int pdfjjoc, string, text, double x, double у [, int mode]) Аргументом mode можно указать используемое разрешение (если указывается 0, то используется разрешение по умолчанию). Функция идентична cpdf_text() без необязательных аргументов. См. также cpdf_text(). cpdf_text Вывод текста с параметрами void cpdf_text (int pdf_document, string text, double x, double у [, int mode [, double orientation [, int alignmode]]]) Параметр orientation задает вращение строки в градусах, a alignmode — выравнивание текста. См. документацию ClibPdf относительно возможных значений. См. также cpdf_show_xy(). cpdf_set_font Выбор текущего шрифта void cpdf_set_font (int pdf_doc, string font_name, double size, string encoding) Выбирает текущий шрифт, его размер и кодировку. В настоящее время поддерживаются только стандартные шрифты postscript. Кодировка может быть указана значениями «MacRomanEncoding», «Mac-ExpertEncoding», «WinAnsiEncoding» и «NULL» (использовать встроенную). См. также документацию ClibPDF. cpdf_set_leading Установка межстрочного расстояния void cpdf_set leading (int pdf_document, double distance) Используется при выводе текста функцией cpdf_continue_text(). См. также cpdf_continue_text(). cpdf_set_text_rendering Установка режима вывода текста void cpdf_set_text_rendering (int pdfjJocument, int mode) Возможные значения аргумента mode: 0 (текст с заполнением), 1 (контурный текст), 2 (заполненный контурный текст), 3 (невидимый), 4 (заполненный текст, прикрепленный к пути), 5 (контурный текст, прикрепленный к пути), 6 (заполненный контурный текст, прикрепленный к пути), 7 (текст, прикрепленный к пути). cpdf_set_horiz_scaling Установка горизонтального разрешения void cpdf_set_horiz_scaling (int pdfjJocument, double scale) cpdf_set_text_rise Установка подъема текста void cpdf_set_text_rise (int pdf_document, double value) |