These pages are written by only Japanese.

Welcom to My Diary.com
最新の日記タイトル一覧カテゴリ別タイトル一覧トップへ戻る〜

こんばんわ♪ 現在は4月19日(金)22時40分。 10時を過ぎて、そろそろ深夜に入ります。


hns - 日記自動生成システム - Version 2.19.5 (色々 Fixed)

先月 2010年11月 来月
01 2 03 4 05 06
7 8 09 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2010年11月17日(水)

[IO_SWF] swfreplacepng.php

SWF の PNG 入れ替えを PHP だけで処理してみました。

原理:

  • PHP の GD ライブラリで PNG データをピクセル形式で取り出す
  • 透明ピクセルが無ければ DefineBitsLossles 。もしあれば、DefineBitsLossless2 のフォーマットで格納する。
  • パレット形式は format = 3 で、トゥルーカラー形式は format=5 のフォーマットに従う。
  • 注意点
    • RGB(24bit)のパレット形式では横のライン毎に 4byte 境界に合うように padding を入れる。
    • A(alpha値)は GD は0(不透明)=>127(透明)で、SWF では 0(透明)=>255(不透明)なので、変換する。
    • ARGB, RGBA 表現は、A に応じて RGB を補正する。(R' = R * A / 255) みたいに。
  • 上記のようにバイナリを構築して、SWF 内の画像タグを差し替える。
参考

実験:

対象 SWF 差し込みたい画像
(Openpear の IO_Bit, IO_SWF がインストールされてる前提で)
% php swfreplacepng.php saitama.swf 1 littleyoya_pink_h.png  > ~/littleyoya_pink_h.swf
結果 枠に収まりきらず画像の左上の方だけ表示されてますが、とりあえず成功。

その他:

  • Openpear IO_Bit, IO_SWF は以下のコマンドでインストール出来ます。
    pear channel-discover openpear.org
    pear install openpear/IO_Bit
    pear install openpear/IO_SWF
    
  • パレット形式で透明度がついてるケースは動くのか今のところ謎です。GD の対応次第ですが。
  • パレット形式のカラーマップ RGBA。仕様書からは A補正が要らないように読み取れますが、補正しないとダメっぽいです。(実際試して補正が必要でした)
近いうちに、@yoyapp さんが図付きで丁寧に説明してくれると思います。

これで、1 日分だよ〜。

タイトル一覧
カテゴリ分類
Database
JXTA
Java
XML
awm
bookmark
keyword
memo
news
research
Powered by hns-2.19.5, HyperNikkiSystem Project