[Base64]




6메가 픽셀 정도의 비트맵 데이터를 JPEG 로 인코딩 하고 Base64로 변환해 보았다.
 
package
{
    import by.blooddy.crypto.Base64;
    import by.blooddy.crypto.image.JPEGEncoder;
    
    import flash.display.Bitmap;
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.filesystem.FileStream;
    import flash.net.URLRequest;
    import flash.utils.ByteArray;
    import flash.utils.getTimer;
    import flash.utils.setTimeout;
    
    import jjongun.devUtil.Stats;
    
    
    [SWF(frameRate="60")]
    public class Base64_1 extends Sprite
    {
        public function Base64_1()
        {
            this.stage.addChild( new Stats);
            
            var loader : Loader = new Loader();
            loader.load( new URLRequest("sample_6MP_Image.jpg"));
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE , complete);
        }
        
        protected function complete(e:Event):void
        {
            var bitmap : Bitmap = e.currentTarget.content as Bitmap;
            
            var time : Number = getTimer();
            var imgBytes : ByteArray = JPEGEncoder.encode(bitmap.bitmapData , 100);
            trace( "JPEGEncode : " , getTimer() - time );
            
            time = getTimer();
            var str : String = Base64.encode(imgBytes , true);
            trace( "Base64Encode : " , getTimer() - time );
            
            
            
        }
    }
}

결과는
JPEGEncode :  1498
Base64Encode :  54

i7에서 54ms 정도로 쓸만하다

종전의 C# 소켓과 통신을 위해 헤더버퍼를 잡고 뒤에 데이터를 보냈는데 그럴 필요 없이
xml 에 Base64를 묶어서 보내는 프로토콜을 이용하면 좀더 편리하고 안전한 통신이 보장된다.

아울러 WCF 서버와 자료 교환에도 용이 할듯 하다.


Yamecoder 야매코더_
tags : ,
AS3 2011.12.19 10:30
Powerd by Tistory, designed by criuce
rss