SWF Editor for PHP (試作品レベル)
5月頭目標で実用的な品質まで持って行く予定
目的
- とりあえずJPEG画像の入れ替え
- PNGのような未圧縮画像も希望があれば対応するかも
- 次にテキストツールで貼り付けた文字列の入れ替え
設計
- PHP extension (php 5.1.6 ← CentOS 5 の yum の対応バージョンがそれなので…)
- bit stream 処理は自作 (もしイイのがあったら誰か教えて…)
- CWF (zlib 圧縮) 対応
は後回し (でも、後で対応できるように) ← 対応しました
- tag ブロック分割と tag の詳細parse を分けて、余分な処理をなるべく省く。
仕様
- php.ini の ext 設定に swfed.so を追加
- PHP extension API
class SWFEditor {
function input(string swddata) return true/false;
function output() return string swfdata;
function swfInfo() return ; // print swfInfo
function getTagList();
return array(array('tag'=>long,
'length'=>long,
'detail'=>bool),
...)
function getTagDatail(integer seqno);
return array(...); image_id とかそれ系
function getJpegData(integer image_id)
return string jpegdata;
function getJpegAlpha(integer image_id)
return string alphadata;
function replaceJpegData(integer image_id, string jpegdata
[,string alphadata])
return true/false;
function getEditTextString(string variable_name); return text;
function replaceEditTextString(string variable_name, string text)
return true/false;
---- ここから下は未実装
function getTagData(integer seqno);
return string tagdata;
}
実装
成果物
プログラム
実験ページ
インストール方法
- swfed をディレクトリ毎もってくる
- php ソースツリーの ext 以下に swfed を配置
- swfed で phpize & configure & make
cd /home/<yourname?>/src/php-5.2.5/ext/swfed
phpize
./configure
make
日記
課題
- メモリ管理のブラッシュアップ
- apache 越しだと segmentation fault になる問題の解決
- 定数データの入れ替え EditText 部
必要が生じたら
- DefineBitsLossless も要望があれば対応するかも。
資料
調査
参考
未参考
- SWF::Parser - SWFファイルをパース
- SWF::Builder - SWFファイル生成
- PECL swf
関連ページ