Web aym.pekori.to

SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- ビットマップオブジェクトをロードする

説明

SWFBitmap swfbitmap ( mixed file [, mixed alphafile] )

警告

この関数は、 実験的 なものです。この関数の動作・ 名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 この関数は自己責任で使用してください。

swfbitmap() は、file で指定した Jpeg あるいは DBL ファイルから新規 SWFBitmap オブジェクトを 作成します。alphafile は、Jpeg 画像の アルファマスクとして使用される MSK ファイルです。これらのパラメータは、 fopen() のリソースあるいはバイナリ文字列です。

注意: baseline (frame 0) jpeg にのみ対応しています。baseline を最適化した jpeg やプログレッシブ jpeg には対応していません!

SWFBitmap は以下のメソッドを保持しています。swfbitmap->getwidth() および swfbitmap->getheight()

png 画像を直接読み込むことはできません。png2dbl を使用して、png から dbl ("define bits lossless") ファイルを作成する必要があります。 この理由は、ming に png ライブラリの依存性を持ち込みたくないからです。 これは autoconf が解決すべき問題ですが、いまのところ解決されていません。

例 1. PNG ファイルのインポート

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

また、jpeg にアルファマスクを設定することが可能です。

例 2. swfbitmap() の例

<?php

  $s
= new SWFShape();

  
// .msk ファイルは "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);

  
// チェッカー盤の背景を描きます
  
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();
?>