- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
TITLE:Flash SWF format - Jpeg
*** (6) DefineBitsJPEG [#tag6]
- JPEG データが image_data にそのまま入る
+-------------------------------------------------------------+
| tag | length | length | image_id | image_data |
| 6 | 0x3f | | | |
+-------------------------------------------------------------+
<-- 2 bytes --> <- 4 bytes -> <-2 bytes-> <-contents 残り全部->
<------------------ length ---->
*** (21) DefineBitsJPEG2 [#tag21]
- JPEG データの圧縮テーブルに関するセグメントが encoding_tables (又は、別の tag である JPEGTables の方)に、それ以外のセグメントが image_data に入る。
-- そのまま取り出しても JPEG ファイルにはならず、セグメントを並び替える必要がある。
-- 各々、SOI(Start of Image)、EOI(End of Image) マーカーでくくるので、SOI,EOI が2つある妙な JPEG に見える。
--- 参考1 -> http://diary.awm.jp/~yoya/?20080203#200802031
--- 参考2 -> http://diary.awm.jp/~yoya/?20080203#200802033
--- 参考3 -> http://mp.i-revo.jp/user.php/wrckyapk/entry/7225.html
-- JPEG データのセグメント構造については ([[Flash/JPEG]])参考のこと。
+-----------------------------------------+------------------------------+
| tag | length | length | image_id | encoding_tables | image_data |
| 21 | 0x3f | | | |
+------------------------------------------------------------------------+
<-- 2 bytes --> <- 4 bytes -> <-2 bytes-> <--- contents 残り全部 --->
<---------------- length ---------------->
*** (35) DefineBitsJPEG3 [#tag35]
- [[DefineBitsJPEG2>#tag21]] のデータに alpha channel (透明度)データが加わったもの
-- これに画像のマスク値を乗せればスプライト的な表示が可能。
-- alpha channel は zlib 圧縮して格納。伸張すると画像左上の pixel から対応する順に透明度の値(1byte)が並んでいる。
-- 参考 -> http://diary.awm.jp/~yoya/?20080213#200802132
+---------------------------------------------------------------
| tag | length | length | image_id | offset_to_alpha | ..
| 35 | 0x3f | | | |
+---------------------------------------------------------------
<-- 2 bytes --> <- 4 bytes -> <-2 bytes-> <-- 4 bytes -->
<--- length (最後まで) ---
---+------------------------------+-------------------+
.. | encoding_tables | image_data | alpha(zlib圧縮) |
---+------------------------------+-------------------+
<-- offse_to_alpha --> <-contents 残り全部->
*** (90) DefineBitsJPEG4 [#tag90]
- [[DefineBitsJPEG3>#tag35]] のデータに deblock_param (デブロッキングフィルタの値)データが加わったもの
-- deblock_param は 2 byte
+---------------------------------------------------------------
| tag | length | length | image_id | offset_to_alpha | ..
| 90 | 0x3f | | | |
+---------------------------------------------------------------
<-- 2 bytes --> <- 4 bytes -> <-2 bytes-> <-- 4 bytes -->
<--- length (最後まで) ---
---+-------------+-----------------+------------+-------------------+
.. |deblock_param| encoding_tables | image_data | alpha(zlib圧縮) |
---+-------------+-----------------+------------+-------------------+
<- 2 bytes -> <-contents 残り全部->
<------------ offset_to_alpha ------------->