SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Crée un objet bitmap

Description

new swfbitmap ( string filename [, int alphafilename])

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

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 bibliothèque 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();
?>