Home > flash > as3 PNG(JPG)EncoderAsync

as3 PNG(JPG)EncoderAsync

  • Posted by: daniwell
  • 2009年5月23日 02:46
  • flash

JPGEncoder & PNGEncoder を非同期に改変。
といってもまあ、フレームに処理を分散させただけではありますが。

今までだと、大きなサイズの画像をエンコードしようとしたとき
CPUを占有してしまってPCが固まったような状態になってしまっていたので、
それの打開策として非同期版を作成。

 
規約に沿えば改変の有無に関わらず公開しても大丈夫ということだったので、
一応公開しておくことにします。もし何か不具合が起きても(ry

 
[class file: JPGEncoderAsync.as ]

具体的なスクリプトとしては、以下のような書き方になります。


import com.adobe.images.JPGEncoderAsync;

var je :JPGEncoderAsync = new JPGEncoderAsync( 50 );
je.addEventListener( JPGEncoderAsync.PROGRESS, onProgress );
je.addEventListener( JPGEncoderAsync.COMPLETE, onComplete );

// fps30としてBitmapDataをエンコード
je.encode( BitmapData, 30 );

function onProgress ( evt :Event ) :void
{
	// エンコード済み/トータル
	trace( evt.target.encoded / ect.target.total );
}
function onComplete ( evt :Event ) :void
{
	// バイナリデータ取得
	var ba :ByteArray = evt.target.image;
}

 
[class file: PNGEncoderAsync.as ]

PNG版もおんなじ要領で。


import com.adobe.images.PNGEncoderAsync;

var pe :PNGEncoderAsync= new PNGEncoderAsync();
pe.addEventListener( PNGEncoderAsync.PROGRESS, onProgress );
pe.addEventListener( PNGEncoderAsync.COMPLETE, onComplete );
pe.encode( BitmapData, 30 );

(※以下JPG版と同様のため略)

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://www.papiness.com/blog/mt-tb.cgi/145
Listed below are links to weblogs that reference
as3 PNG(JPG)EncoderAsync from papi-blo

Home > flash > as3 PNG(JPG)EncoderAsync

Search
Feeds

Return to page top