SWF Editor for PHP (試作品レベル)
(c) 2008/03/09- yoya@awm.jp
5月頭目標で実用的な品質まで持って行く予定

目的

  • とりあえず画像の入れ替え
  • 次にテキストツールで貼り付けた文字列の入れ替え

設計

  • PHP extension (php 5.1.6 ← CentOS 5 の yum の対応バージョンがそれなので…)
  • bit stream 処理は自作 (もしイイのがあったら誰か教えて…)
  • CWF (zlib 圧縮) 対応は後回し (でも、後で対応できるように) ← 対応しました
  • tag ブロック分割と tag の詳細parse は分けて、必要ない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(integer variable_name); return text;
         function replaceEditTextString(integer variable_name, string text)
                                        return true/false;
         function getTagData(integer seqno);
                                        return string tagdata;
    }

実装

  • なるべく swf_{object|header|tag|...}.c 側に処理を作って、swfed.c はそこへの橋渡しのみ
  • swf_tag_<タグ名の省略形>.[hc]
    attach_detail_handler で以下の関数ポインタを渡す
    -> {create, output, print, destroy}

成果物

プログラム

実験ページ

日記

課題

  • メモリ管理のブラッシュアップ
    • エージングに耐えられるように
  • DefineBitsJPEG2,3 JPEG 構造対応
  • 定数データの入れ替え EditText 部

資料

調査

参考

未参考

関連ページ


Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes