[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 서버와 자료 교환에도 용이 할듯 하다.
'AS3' 카테고리의 다른 글
간단한 AS3 바이트 버퍼 나누기 (110) | 2012.03.09 |
---|---|
[Multitouch on 3D World] (92) | 2012.01.17 |
[Base64] (282) | 2011.12.19 |
[AS3 , Enum] AS3 에서 Enum Type 을 구현하자 (Fake Enum in AS3) (56) | 2011.10.15 |
[AIR3] Setup in FB4.5 (164) | 2011.10.12 |
[SimpleFileWriter] SimpleFileWriter를 이용한 파일레퍼런스 사용법 (366) | 2011.04.28 |
AS3
2011.12.19 10:30