Графика, 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
Headert"Content-type: image/png");
$stnng=implode($argv." "):
$1m = imageCreateFromPngC'images/buttonl.png"):
Sorange = ImageColorAllocate($1m. 220. 210. 60);
$px = (imagesx($im)-7.5*strlen($string))/2;
ImageStri ng($1m.3.$px.9.$stri ng.Sorange):
ImagePng($im); ImageDestroy($im); ?>
ImageTypes
Определение графических форматов, поддерживаемых РНР
int imagetypes(void);
Возвращает битовую маску графических форматов, поддерживаемых используемой библиотекой GD: IMG_GIF | IMG_JPG IMG_PNG | IMG_WBMP.
<?php if (ImageTypesO & IMG_PNG)
{ echo "формат PNG поддерживается". } ?>
ImageCreate
Создание рисунка
int imagecreate (int x_s1ze, int y_size)
Возвращает дескриптор созданной картинки размером x_size на y_size.
<?php header ("Content-type: image/png").
$ni = @ImageCreate (50. 100) or die
("Нельзя создать GD image ");
Sbackground_color -- ImageColorAllocate
(Sim. 255. 255. 255): $text_co1or = ImageColorAllocate
(Sim. 233. 14. 91): ImageStnng
($im, 1. 5. 5. "A Simple Text String". $text_color)
ImagePrg ($im): // передать рисунок браузеру ?>
ImageCreateFromGIF
Создание рисунка из файла GIF
Int imagecreatefromgif (string filename)
Возвращает дескриптор рисунка filename (можно указать URL) или пустую строку при ошибке (с выдачей предупреждения).
function LoadGif (Simgname) {
Sin1 @ImdgeCreateFromGIF ($imgname):
/* Attempt to open */ if (!$im) { /* See if it failed */
$im = ImageCreate (150. 30);
/* Create a blank image */ Sbgc =
ImageColorAl locate ($im. 255. 255. 255);
$tc = ImageColorAllocate ($im. 0. 0. 0):
ImageFilledRectangle (Sim. 0. 0. 150. 30, Sbgc);
ImageStnng($im. 1. 5. 5. "Error loading Simgname". Stc): }
return Sim. }
Так как 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"): ?>
<IMG SRC="img/flag.jpg" <7php echo $size[3]. ?>
Указав необязательный массив imageinfo, в нем можно сохранить дополнительную информацию о файле, например различные маркеры JPG APP (внедренную информацию). Часто в маркер АРР13 заносят информацию IPTC http://www.iptc.org/. Функция iptcparse() позволяет конвертировать эти данные АРР13 в читаемый вид.
<?php Ssize = GetlmageSize ("testimg.jpg".&$info):
if (isset ($info["APP13"])) {
Siptc = iptcparse ($info["APP13"]):
var_dump (Siptc): ; } ?>
Функция не требует библиотеки GD.
read_exif_data
Чтение заголовков EXIF из файла JPEG
array read_exif_data (string filename)
Возвращает ассоциативный массив, в котором индексами являются имена заголовков Exif. Заголовки Exif обычно хранят информацию цифровых камер (в различном виде).
<?php Sexif = read_exif_data Cp0001807.jpg');
while(list($k.$v)=each($exif))
{ echo "$k: $v<br>\n"; } ?> Output
FileName: p0001807.jpg
FileDateTime: 929353056 FileSize 378599
CameraMake: Eastman Kodak Company
CameraModel: KODAK DC265
ZOOM DIGITAL CAMERA (V01.00)
DateTime: 1999:06:14 01-37:36
Height: 1024 Width: 1536 IsCoIor: 1
FlashUsed 0 Focal Length: 8.0mm
RawFocalLength: 8 ExposureTime: 0.004 s
(1/250) RawExposureTime.
0.0040000001899898
ApertureFNumber: f/ 9.5
RawApertureFNumber:
9.5100002288818
FocusDi stance: 16.66m
RawFocusOistance: 16.659999847412
Orientation: 1 ExifVersiori: 0200
Функция доступна, только если 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"))
{ Header("Content-type: image/gif"): ImageGif(Sim): }
elseif (function_exists("imagejpeg")) {
Header("Content-type: image/jpeg").
ImageJpeg($lm. "". 0 5): }
elseif (function_exists("imagepng")) (
Header("Content-type: image/png"):
ImagePng($im). } else
dieC'No image support in this PHP server"): ?>
Используйте функцию imagetypes() вместо function_exists() для проверки поддержки различных форматов:
if (ImageTypes()& IMG_GIF) {
Header("Content-type: image/gif"): ImageGif(Jim): }
elseif (ImageTypesO & IMG_JPG) { ... etc.
См. также: ImagePng(), ImageJpeg(), ImageTypes().
ImagePNG
Отсылка рисунка PNG браузеру или сохранение его в файле int imagepng (int im [, string filename])
Выводит GD рисунок im в формате PNG на стандартный поток вывода (обычно браузер), или если указано имя файла filename, то в этот файл.
<?php $im = ImageCreateFromPngC'test.png").
ImagePng($im). ?>
См. также: 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);
// белый Sblack = ImageColorAl locate ($irp. 0. 0. 0).
// черный
ImageColorDeAllocate
Исключение цвета из палитры рисунка
int imagecolordeal locate (int im, int index)
$white - ImageColorAllocate($im. 255, 255. 255);
ImageColorDeAl locate($im. $white);
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 (меньший-больший). Формат файла зависит от системы. В общем случае он имеет следующую структуру:


Байты

Тип

Описание

0-3

int

Число символов в файле

4-7

int

Код первого символа (обычно 32 — пробел)

8-11

int

Ширина символов в пикселах

12-15

int

Высота

16-...

int

Массив ланных символов (байт на пиксел для каждого символа). Общий размер: (псЬаг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) Аргументы, от которых зависит результат функции:

  • text — строка текста;
  • size — размер шрифта в пикселах;
  • Fontfile — имя файла, содержащего шрифт TrueType (можно указать URL); ,
  • angl e — угол наклона текста.

Возвращает массив из 8 элементов, определяющих прямоугольник вывода текста:

  1. нижний левый угол, Х-координата;
  2. нижний левый угол, Y-координата;
  3. нижний правый угол, Х-координата;
  4. нижний правый угол, Y-координата;
  5. верхний правый угол, Х-координата;
  6. верхний правый угол, Y-координата;
  7. верхний левый угол, Х-координата;
  8. верхний левый угол, Y-координата.

Возвращаемые координаты зависят от угла наклона строки (точкой отсчета служит нижний левый угол первого символа). Координаты могут иметь отрицательные значения. Функция требует библиотеки 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 (в виде &#123;) для вывода символов с кодами, большими 255.
При использовании отрицательного значения индекса цвета отключается сглаживание шрифта (antialiasing).
Возвращает массив из 8 элементов, определяющих прямоугольник вывода текста подобно функции imagettfbbox(). Функция требует библиотеки GD и FreeType.
<?php Header ("Content-type: image/gif").
$im = imagecreate (400. 30).
Sblack = ImageColorAllocate ($im. 0 0. 0);
$white = ImageColorAl locate ($im. 255. 255. 255);
ImageTTFText ($щ. 20. 0. 10. 20.
Swhite. "/path/anal .ttf", "Testing Omega: &#937;"):
ImageGif (Sin). ImageDestroy (Sim); ?>
Следующий пример выводит строку по центру рисунка:
<?
$gi = ImageCreate(200.100):
$bg = ImageColorAllocate($gi.0.220.0);
$tx = ImageColorAllocate($gi.25.2.228).
$w=imagesx(Igi): // ширина рисунка
$h=imagesy($9i): // высота
ImageFilledRectang]6($gl.0.0.$w,$h.$bg):
$szf=20; // размер шрифта
$ang=240; // угол поворота строки
$str="Heyou". // текст строки
$font="symbol.ttf": // файл шрифта
$sz=imagettfbbox($szf.$ang.$font.$str).
$sdx=$sz[4]/2; $sdy=($sz[7]+$sz[3])/2;
imagettftext($gi.$szf.$ang.
$w/2-$sdx.$h/2-$sdy.$tx.$font.$str);
//header("content-type, image/png"):
ImagePng($gi."n2.png"); ?>
См. также 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 не обязательны.
Результаты расчета недостаточно точны. Функция возвращает массив:

  • 0 — нижний левый угол, Х-координата;
  • 1 — нижний левый угол, У-координата;
  • 2 — верхний правый угол, Х-координата;
  • 3 — верхний правый угол, Y-координата.

См. также 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().
Shockwave Flash
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
. swf_ortho2 (-100. 100. -100. 100): swfjJefinelme
(1. -70. 0. 70. 0. .2). swfjiefinerect (4. 60. -10. 70. 0. 0).
swfjtefinerect (5. -60. 0. -70. 10. 0):
sv,f_addcolor (0. 0. 0. 0):
swfjjefinefont (10. "Mod"): swf_fontsize (5):
swfjfontslant (10).
swf_definetext (11. "This be Flash wit PHP!". 1):
swf_pushmatnx (): swf_translate
(-50. 80. 0). swf_placeobject (11. 60). swf_popmatrix ():
for ($1 0; $1 < 30: $i++) { p $p = $i/(30-l):
svrf_pushmatnx (): m
swf_scale (l-($p*.9). 1. 1). 1
swf_rotate (60*$p. 'z'):
swf_translate (20+20*$p. Sp/1 5. 0):
swf_rotate (270*$p. 'i );
swf_addcolor ($p. 0. $p/l,2. -$p);
swf_placeobject (1. 50);
swf_placeobject (4. 50).
swf_p1aceobject (5. 50).
swfjpopmatnx (): swf_showframe (): }
for ($1 = 0: $1 < 30: $т++)
{ swfj-emoveobject (50): if {($i*4) == 0) { swf_showframe (): } }
swf_startdoactiof():
swf_actionstop (): swf_enddoaction():
swf_closeflle() ?>
Просмотреть результат исполнения сценария можно но адресу:
http:// www.designmultimedia.com/swfphp/test.swf.
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
// Stext - аргумент сценария
// Параметры БД (для swf_savedata()) SDBHOST
"localhcst": SOBUSER = "иьег"; $DBPASS "secret1.
swf_openfile ("php //stdout". 256. 256. 30. 1. 1, i):
swf_def,nefont (10. "Ligon-Bold"): swfjon'size (12):
swf_fon.blant (10)
swf_definetext (11. $text. 1):
swf_pushmatnx ():
swf_translate (-50. 80. 0)
swf_placeobject (11. 60). swf_popmatnx ();
swf_showframe ():
swf_startdoaction (). swf_actiOPStop ():
swf_enddoaction ():
Sdata = swf_closefile (1):
Sdata ?swf_savedata (Sdata) :
die ("Невозможно сохранить SWF файл"):
// сохранить файл в БД function swf_savedata ($data) {
global SD6HOST. SDBUSER. SDBPASS:
Sdbh = (amysql_connect
(SDBHOST. SDBUSER. SDBPASS):
if (!$dbh) { die (spnntf ("Error [Id]: us".
mysql_errno (). mysql_error(): }
Sstmt = "INSERT INTO swf_files
(file) VALUES f'$data')":
$sth - @mysql_query (Sstmt. Sdbh): if (!Ssth) {
die (sorintf ("Error [ВД: *s".
mysql_errno (). mysql_error ())); }
?mysql_free_result (Ssth);
(amysql_clo^e (Sdbh). } >
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);
Возвращает ассоциативный массив из двух элементов:

  • Aheight — высота в пикселах заглавной буквы А;
  • xheight — высота в пикселах маленькой буквы х.

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, содержащий элементы:

  • «size» — размер рисунка в байтах;
  • «width» — ширина рисунка в пикселах;
  • «height» — высота рисунка в пикселах.

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_addButtonRecord (BSDown|BSOver. Sbuttonlmageld. 340).
swf_onCondition (MenuEnt?r).
swf_actionGetUrl ("http-//www desTgnmultimed-a.com". "Jevell"):
swf onCondltion (MenuExH):
swf_actTonGetUrl ("". "_levell"); swf_endButton ();
swf_oncondition
Назначение события
void swf_oncondition (int transition)
Для кнопок TYPE_MENUBUTTON возможны параметры:

  • IdletoOverUp;
  • OverUptoIdle;
  • OverllptoOverDown;
  • OverDowntoOverUp;
  • IdletoOverDown;
  • OutDowntoIdle;
  • MenuEnter (Id!etoOverl)p| IdletoOverDown):
  • MenuExit (OverUptoIdlejOverDowntoIdle).

Для кнопок TYPE_PUSHBUTTON возможны параметры:

  • IdletoOverllp;
  • OverUptoIdle;
  • OverUptoOverDown;
  • OverDowntoOverUp;
  • OverDowntoOutDown;
  • OutDowntoOverDown;
  • OutDowntoIdle;
  • ButtonEnter (IdletoOverUp|OutDowntoOverDown);
  • ButtonExit (OverUptoIdle]OverDowntoOutDown).

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 запрещает округление.

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г. Яндекс.Метрика