SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Bitmap (pixelgrafikus) objektum betöltése

Leírás

new swfbitmap ( string fájlnév [, int alfacsatorna kép fájlnév])

Figyelem

Ez a függvény KÍSÉRLETI JELLEGGEL MŰKÖDIK. A függvény működése, neve, bármi amit a függévénnyel kapcsolatban dokumentáltunk megváltozhat egy későbbi PHP kiadásban minden figyelmeztetés nélkül. Ezt a függvényt csak a saját felelősségedre használd!

Az swfbitmap() függvény egy SWFBitmap típusú objektumot hoz létre egy a fájlnév paraméterben megadott Jpeg vagy DBL típusú képfájlból. Lehetőség van egy alphafilename alfacsatorna kép fájlnév paraméter megadására is, ami a kép áttetszőségét képes szabályozni.

Megjegyzés: Kizárólag "baseline (frame 0)" formátumú jpeg képek alkalmazása lehetséges, a "baseline optimized" illetve a progresszív kódolású képfájlok nem alkalmazhatók.

Az SWFBitmap objektumokon a következő műveletek végezhetők: swfbitmap->getwidth() és swfbitmap->getheight().

Nincs közvetlen lehetőség png típusú képek betöltésére. Azokat előbb a png2dbl segédprogrammal dbl formátumúra kell alakítani. Ennek az oka az, hogy a fejlesztő nem kívánta a Ming függvénykönyvtárat a png támogatástól függővé tenni.

Példa 1. PNG képfájlok importálása

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

Lássuk, hogyan is kell alfacsatorna maszkot tenni a jpeg képre:

Példa 2. swfbitmap() példa

<?php

  $s
= new SWFShape();

  
// az .msk fájl a "gif2mask" segédprogrammal lett előállítva
  
$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);

  
// "rácsozat" megrajzolása
  
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();
?>