Base64形式でエンコードしたJPEGファイルの文字列をas3でデコードする方法
JPEGのデコードは、AS3 JPEG Decoder – ByteArray.orgを利用
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.utils.ByteArray;
import mx.utils.Base64Decoder;
import org.bytearray.decoder.JPEGDecoder;
[SWF(width="1024", height="768", frameRate="60", backgroundColor="#f5f2f0")]
public class TestBase64 extends Sprite
{
private static const base64Data:String = "/9j/4AAQSkZJRgABAgEASABIAAD/4R7sRXhpZgAATU0AKgAAAAgADgEAAAMAAAABAgAAAAEBAAMAAAABAgAAAAECAAMAAAADAAAAtgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAESAAMAAAABAAEAAAEVAAMAAAABAAMAAAEaAAUAAAABAAAAvAEbAAUAAAABAAAAxAEcAAMAAAABAAEAAAEoAAMAAAABAAIAAAExAAIAAAAeAAAAzAEyAAIAAAAUAAAA6odpAAQAAAABAAABAAAAASwACAAIAAgACvyAAAAnEAAK"; //本当はもっと長く続く
public function TestBase64()
{
var decoder:Base64Decoder = new Base64Decoder();
decoder.decode( base64Data );
var ba:ByteArray = decoder.toByteArray();
var myDecoder:JPEGDecoder = new JPEGDecoder();
myDecoder.parse(ba);
var width:uint = myDecoder.width;
var height:uint = myDecoder.height;
var colorComponents:uint = myDecoder.colorComponents;
var numComponents:uint = myDecoder.numComponents;
var pixels:Vector.<uint> = myDecoder.pixels;
var bitmapData:BitmapData = new BitmapData ( width, height, false );
bitmapData.setVector ( bitmapData.rect, pixels );
var bmp:Bitmap = new Bitmap( bitmapData );
addChild( bmp );
}
}
}