SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Crée un objet bitmap

Description

new swfbitmap ( string filename [, int alphafilename])

swfbitmap() crée un objet bitmap à partir d'un fichier JPEG ou DBL, nommé filename. alphafilename indique un fichier de masque à utiliser comme canal alpha sur une image JPEG.

Note : Seule les JPEG baseline (frame 0) sont supportés. Les baseline optimisée ou les JPEG progressives ne sont pas supportées.

SWFBitmap a les méthodes suivantes : swfbitmap->getwidth() et swfbitmap->getheight().

Il n'est pas possible d'importer directement des images PNG, il faut utiliser l'utilitaire de conversion png2dbl pour en faire un fichier .dbl ("define bits lossless"). La raison est que l'auteur ne souhaite pas de dépendance avec la librairie PNG. Le fichier d'autoconfiguration devrait régler ce problème, mais il n'est pas encore fait.

Exemple 1. Importation de fichiers PNG sous Ming

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

Et vous pouvez ajouter un masque alpha sur une image JPEG.

Exemple 2. Exemple avec swfbitmap()

<?php
  $s
= new SWFShape();
  
//les fichiers .msk sont générés par l'utilitaire "gif2mask"
  
$f = $s->addFill(new SWFBitmap("alphafill.jpg", "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);
  
// décide un fond à damier
  
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();
?>