Upload
yardley-hoover
View
36
Download
0
Embed Size (px)
DESCRIPTION
SWF 内 Lossless 画像の PNG 化による HTML5 Flash Player 処理軽減提案. 2011/11/17(Thu) [email protected]. 提案 概要. ブラウザ上の JavaScript で SWF => HTML5 Canvas or SVG の橋渡しをする場合、 SWF 内 Lossless ビットマップ画像 が Flash 独自形式の為、 PNG や GIF といった Canvas or SVG が 認識できる画像形式に変換する必要がある。 - PowerPoint PPT Presentation
Citation preview
SWF 内 Lossless 画像の PNG 化による HTML5 Flash Player 処理軽減提案
2011/11/17(Thu) [email protected]
提案概要• ブラウザ上の JavaScript で SWF => HTML5 Canvas
or SVG の橋渡しをする場合、 SWF 内 Lossless ビットマップ画像が Flash 独自形式の為、 PNG や GIF といった Canvas or SVG が認識できる画像形式に変換する必要がある。
• その為、 ExGame や Reel では、 Zlib 伸長や PNG 符号化といった重たい処理が存在すると予想される。
• SWF を予め変換する事。 Flash Player 側で SWFv8 以降の仕様を1つ許容する事で、重たい処理を省略できる。
HTML5 Flash Player の ビットマップ処理想像図 (JavaScript)
Flash SWF
HTML5 Canvasor SVG
DefineBitsLossless*
DefineBitsJPEG* (custom)JPEGData
ZlibBitmapData
chunk sorting
(std) JPEG data
zlibuncompress
RGB or RGBARaw Bitmap Data
base64
PNG or GIFdataPNG
encode
base64
(custom)JPEGData
ZlibBitmapData
の処理は重たいはず
SWF Lossless 画像の PNG 化( 処理する言語は何でも )
Flash SWF
DefineBitsLossless*
DefineBitsJPEG*
ZlibBitmapData zlib
uncompress
RGB or RGBARaw Bitmap Data
PNGencode
(custom)JPEGData
ZlibBitmapData
Flash SWF
DefineBitsJPEG*
(custom)JPEGData
DefineBitsJPEG2
PNG data
PNG data
※ SWF を予め上記のように変換しておく。動的な SWF であれば ひな形の SWF を変換、出来れば replace 時も、この形式で格納する。
PNG 化 SWF のビットマップ画像処理 (JavaScript)
Flash SWF
HTML5 Canvasor SVG
DefineBitsJPEG* (custom)JPEGDatachunk sorting
(std) JPEG data
RGB or RGBARaw Bitmap Data
base64
PNG or GIFdata
(custom)JPEGData
PNG data base64
※ DefineBitsJPEG2 に PNG を格納するのは SWFv8 以降の 仕様の為、既存の携帯 Flash では表示できません。
( 不要 )
DefineBitsJPEG2
PNG data
SWFEditor v0.50 以降の機能• PHP に SWFEditor を適用すると、以下のよう
に PNG 化できます。
• http://git.sourceforge.jp/view?p=swfed/swfed.git;a=blob;f=sample/swfconvertbitmapdatatojpegtag.php
• 動的生成用の replace もこの形式に対応しています。
• PHP 以外の言語でも実装は難しくないはずです。
php swfconvertbitmapdatatojpegtag.php \ colorformat.swf > colorformat-png.swf
$without_converting = true; $swfed->replaceBitmapData($image_id, $bitmap_data, null, $without_converting);
• 以上です。