7
SWF 内 Lossless 内内内 PNG 内内内内 HTML5 Flash Player 内内内内内内 2011/11/17(Thu) [email protected]

SWF 内 Lossless 画像の PNG 化による HTML5 Flash Player 処理軽減提案

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

Page 1: SWF  内 Lossless 画像の PNG 化による  HTML5 Flash Player  処理軽減提案

SWF 内 Lossless 画像の PNG 化による HTML5 Flash Player 処理軽減提案

2011/11/17(Thu) [email protected]

Page 2: SWF  内 Lossless 画像の PNG 化による  HTML5 Flash Player  処理軽減提案

提案概要• ブラウザ上の JavaScript で SWF => HTML5 Canvas

or SVG の橋渡しをする場合、 SWF 内 Lossless ビットマップ画像が Flash 独自形式の為、 PNG や GIF といった Canvas or SVG が認識できる画像形式に変換する必要がある。

• その為、 ExGame や Reel では、 Zlib 伸長や PNG 符号化といった重たい処理が存在すると予想される。

• SWF を予め変換する事。 Flash Player 側で SWFv8 以降の仕様を1つ許容する事で、重たい処理を省略できる。

Page 3: SWF  内 Lossless 画像の PNG 化による  HTML5 Flash Player  処理軽減提案

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

の処理は重たいはず

Page 4: SWF  内 Lossless 画像の PNG 化による  HTML5 Flash Player  処理軽減提案

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 時も、この形式で格納する。

Page 5: SWF  内 Lossless 画像の PNG 化による  HTML5 Flash Player  処理軽減提案

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

Page 6: SWF  内 Lossless 画像の PNG 化による  HTML5 Flash Player  処理軽減提案

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);

Page 7: SWF  内 Lossless 画像の PNG 化による  HTML5 Flash Player  処理軽減提案

• 以上です。