Actionscript3 Flash

JpgEncoderの非同期版やってみた。(前に)

Tweet
えっと、実はすごい前に作っていたので今は誰か作っているのかもですが、
adobeのcorelibにある、JpgEncoderの非同期版を作ってみました。
http://www.hi-farm.net/labs/modJPGEncoder.as.zip
ライセンス的に大丈夫だという判断で公開ですが、まずそうでしたらすぐに取り下げますのですみませんが、ご連絡下さい。
使い方は、
1. corelibのJpgEncoder.asを解凍したファイルに差し替えて下さい。
コードではこんな風にして下さい(サンプル:画像保存のAIRアプリ)
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:WindowedApplication xmlns:mx=”http://www.adobe.com/2006/mxml”; layout=”absolute” creationComplete=”initApp()”>
<mx:Script>
<![CDATA[
import com.adobe.images.JPGEncoder;
import flash.events.*;
private var jpg:JPGEncoder;
private function initApp():void
{
btn.addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(e:MouseEvent):void
{
//— 
jpg = new JPGEncoder(100);
//— 処理中のイベント
jpg.addEventListener(“progressing”, progressHandler);
//— 処理完了のイベント
jpg.addEventListener(“finished”, finishedHandler);
var bmpdata:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, false);
bmpdata.draw(stage);
jpg.encodeAsync(bmpdata);
}
private function progressHandler(e:Event):void
{
var percent:String = new int((jpg.cur/jpg.maxCur)*100).toString() + “%”;
ti.text = percent;
}
private function finishedHandler(e:Event):void
{
ti.text = “convert finished.”;
//– 終了したら、ファイルに保存する。
var f:File = File.desktopDirectory.resolvePath(“out.jpg”);
var fs:FileStream = new FileStream();
fs.open(f, FileMode.WRITE);
fs.writeBytes( jpg.ba, 0, jpg.ba.length);
fs.close();
}
]]>
</mx:Script>
<mx:VBox>
<mx:TextInput […]

Continue Reading