(PHP 5 < 5.3.0, PECL ming SVN)
SWFBitmap::__construct — Загружает объект Bitmap
Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.
Создает новый объект SWFBitmap из переданного параметра
file
.
Для обоих параметров можно указать файловый указатель, возвращаемый функцией fopen(), или данные изображения в виде двоичной строки.
file
Замечание:
Мы можем работать только с исходными jpeg-изображениями (кадр 0), без исходных неоптимизированных jpeg-изображениями или прогрессивной разверткой!
Вы не можете импортировать изображения в формате png напрямую, однако, вам нужно использовать утилиту png2dbl для создания файла dbl ("define bits lossless") из png. Причина этого в том, что я не хочу, чтобы зависимость png в ming- autoconf разрешило это, но это еще не установлено.
alphafile
Файл MSK, который будет использоваться в качестве альфа-маски для JPEG-изображения.
Пример #1 Импортирование DBL-файла
<?php
$s = new SWFShape();
$f = $s->addFill(new SWFBitmap(file_get_contents("image.dbl")));
$s->setRightFill($f);
$s->drawLine(32, 0);
$s->drawLine(0, 32);
$s->drawLine(-32, 0);
$s->drawLine(0, -32);
$m = new SWFMovie();
$m->setDimension(32, 32);
$m->add($s);
header('Content-type: application/x-shockwave-flash');
$m->output();
?>
Пример #2 Использование альфа-маски
<?php
$s = new SWFShape();
// файл с расширением msk, сгенерированный утилитой "gif2mask"
$f = $s->addFill(new SWFBitmap(file_get_contents("alphafill.jpg"), file_get_contents("alphafill.msk")));
$s->setRightFill($f);
$s->drawLine(640, 0);
$s->drawLine(0, 480);
$s->drawLine(-640, 0);
$s->drawLine(0, -480);
$c = new SWFShape();
$c->setRightFill($c->addFill(0x99, 0x99, 0x99));
$c->drawLine(40, 0);
$c->drawLine(0, 40);
$c->drawLine(-40, 0);
$c->drawLine(0, -40);
$m = new SWFMovie();
$m->setDimension(640, 480);
$m->setBackground(0xcc, 0xcc, 0xcc);
// нарисовать фон шахматной доски
for ($y=0; $y<480; $y+=40) {
for ($x=0; $x<640; $x+=80) {
$i = $m->add($c);
$i->moveTo($x, $y);
}
$y+=40;
for ($x=40; $x<640; $x+=80) {
$i = $m->add($c);
$i->moveTo($x, $y);
}
}
$m->add($s);
header('Content-type: application/x-shockwave-flash');
$m->output();
?>