SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Crée un objet bitmap

Description

SWFBitmap swfbitmap ( mixed file [, mixed alphafile] )

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 dans le fichier file. alphafile indique un fichier de masque à utiliser comme canal alpha sur une image JPEG. Les deux paramètres peuvent être une ressource ouverte avec fopen() ou une chaîne binaire.

Note : Seuls les JPEG baseline (frame 0) sont supportés. Les baseline optimisées 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(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();
?>

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(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);

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