TITLE:Flash SWF 上の JPEG の扱い 

- Flash SWF バイナリ内の画像は JPEG 形式で格納される。フォーマットは3種類ある。
-- SWF フォーマットの詳細はこちら > [[Flash/SWF/format]]
- DefineBitsJPEG は、JPEG 形式がそのまま入る。
- DefineBitsJPEG2 は、JPEG 形式のうち圧縮テーブルのセグメントを特別扱いする。以下の二択。[http://diary.awm.jp/~yoya/?2008020&to=20080203#200802031 参考]
--   圧縮テーブルを別タグ(JPEGTables)のブロックに入れて、複数の DefineBitsJPEG2,3 で使いまわす。
--   DefineBitsJPEG2,3 タグ内ではあるが、前半に圧縮テーブルを持ってきて、後半にそれ以外のセグメントを置く。
--- なので、そのまま取り出すと SOI, EOI マーカーが2つずつある、妙な JPEG に見える。
- DefineBitsJPEG3 は、JPEG の扱いはDefineBitsJPEG2 と同じで、更に alpha channel(透明度)データが後ろに付く。
-- マスクデータを指定してスプライト表示のように使う事が多い。([http://diary.awm.jp/~yoya/?20080213#200802132 参考])

- その結果、特殊に見える JPEG の説明はこちら。↓ (本家のサイトはアクセスできなくなっているので、cache 参考の事)
-- http://auicon.freeownhost.com/pc/dev/ming/jpeg.html ([http://www.awm.jp/~yoya/cache/auicon.freeownhost.com/pc/dev/ming/jpeg.html cache])
---   [http://www.awm.jp/~yoya/cache/auicon.freeownhost.com/pc/dev/ming/jpeg.c.diff jpeg.c.diff の cache]

* 調べる事になったきっかけ [#l84881e4]

- http://pc11.2ch.net/test/read.cgi/swf/1172599208/277-376 [#tdef6cc3]
 375 :Now_loading...774KB:2007/06/15(金) 02:45:13 ID:t9sozzWd
 >>345 >>374 
 JPEGを差し替えるだけならこんな感じ。 
 1)とりあえずベースとなるswfを作る。 
 2)DefineBitsJPEG2を探してJPEGデータを差し替える。 
 3)差し替えたDefineBitsJPEG2のRECORDHEADER内のLengthを書き換える。 
 4)SWF File HeaderのFileLengthを書き換える。 
 
 用語やフォーマットは flash_fileformat_specification.pdf を参照。

* 関連 [#gcd542dd]


- JPEG フォーマット ([[JPEG]])
- [[SWF Editor PHP extension>swfed]]
- [[SWF フォーマット>Flash/SWF/format]]

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