SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Loads Bitmap object

Description

SWFBitmap swfbitmap ( mixed file [, mixed alphafile] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbitmap() creates a new SWFBitmap object from the Jpeg or DBL file in file. alphafile is a MSK file to be used as an alpha mask for a Jpeg image. Both parameters can be fopen() resources or binary strings.

Замечание: We can only deal with baseline (frame 0) jpegs, no baseline optimized or progressive scan jpegs!

SWFBitmap has the following methods : swfbitmap->getwidth() and swfbitmap->getheight().

You can't import png images directly, though- have to use the png2dbl utility to make a dbl ("define bits lossless") file from the png. The reason for this is that I don't want a dependency on the png library in ming- autoconf should solve this, but that's not set up yet.

Пример 1. Import PNG files

<?php
  $s
= new SWFShape();
 
$f = $s->addFill(new SWFBitmap(file_get_contents("png.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();
?>

And you can put an alpha mask on a jpeg fill.

Пример 2. swfbitmap() example

<?php

  $s
= new SWFShape();

 
// .msk file generated with "gif2mask" utility
 
$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);

 
// draw checkerboard background
 
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();
?>



SWFBitmap
julien / at / theoconcept.com
29-Jan-2006 02:36
If you're trying to use an image generated by PHP, remember that imagejpeg outputs an interlaced image by default, which is NOT accepted by SWFBitmap.

You have to use imageinterlace($ImageHandle, 0); to make it compatible.
ukocolu at yahoo dot com
08-Apr-2002 12:45
You may want to use flashwriter that is written by Stefan Schler an excellent image2swf converter.
http://www.stefanschuessler.de
lievenstandaert at hotmail dot com
15-Aug-2001 11:45
... that is, unless you're using the version of the ming library distributed with php 4.0.6, in that case go with the manual
hotkey at hehe dot com
21-May-2001 11:52
To insert bitmaps, don't use the as syntax given in this documentation, due to OPAQUE changed the usage of SWFBitmaps: You need to give binary data as argument! In addition to that, you can now just "swf->add()" Bitmaps; you don't need to create a rect-shape and fill it.

So just try this:
==================
$fp = fopen($filename,"r");
$i = fread($fp,999999);
$img = new SWFBitmap($i); #don't give "fread(...)" as argument, but buffer it.
fclose($fp);

$swf->add($img);  #this will create a shape with perfect proportions and fills it
=================

Hope, that will prevent some suicides of desperate coders...  ;)

HotKey - http://www.SPR.AT

<SWFBitmap->getWidthswfbutton_keypress>
 Last updated: Tue, 15 Nov 2005