swfed 0.24 リリース (bitmap shape タグ検索機能)

bitmap shape タグ検索機能がメインのリリースです。

bitmap shape タグ検索

0.23 の setShapeAdjustMode を使うと、画像を入れ替える際に枠に合わせてよしなに調節しますが、画像を参照する Shape タグを SWF 中から検索するので原理的に重たいです。

一方、0.22 から機能する applyShapeRectFactor applyShapeMatrixFactor は処理は軽めですが、shape_id と変換するサイズの比率を指定するメソッドで、
image_id を調べるだけでも面倒なのに、shape_id も調べなきゃとか。変換前の画像サイズを覚えるとかやってらんない。
という状況が予想されるので、以下のメソッドを用意しました。

  • getShapeIdListByBitmapRef($image_id) : image_id を指す Shapeタグid一覧取得
  • getBitmapSize($image_id) : image_id に対応する画像の縦横サイズを得る

$image_id は仕方なく SWF を dump して調べて貰うとして、
入れ替え後画像のサイズを $newSize で渡せば、

$oldSize= $swfed->getBitmapSize($image_id);
$scale_x = $oldSize['width']  / $newSize['width'];  // 逆数
$scale_y = $oldSize['height'] / $newSize['height']; // 逆数
$shape_id_list = $swfed->getShapeIdListByBitmapRef($image_id);
foreach ($shape_id_list as $shape_id) {
	$swfed->applyShapeMatrixFactor($shape_id, $scale_x, $scale_y, 0, 0, 0);
}

のように出来て、かつ、$shape_id_list を何らかの方法(memcache とか)で cache すれば、
重たい所も対処できるはず。という目的で用意しました。

version

php -i で swfed の version が分かるようにしました。

% php -i | grep -i swf
/etc/php.d/swfed.ini
swfed
SWF Editor support => enabled
SWF Editor version => 0.24
SWF Editor PNG support => yes
SWF Editor GIF support => yes
PWD => /home/yoya/svn/swfed/trunk/src
_SERVER["PWD"] => /home/yoya/svn/swfed/trunk/src
_ENV["PWD"] => /home/yoya/svn/swfed/trunk/src

今までなくて、ほんと済みません。