본문 바로가기

프로그래밍/ActionScript

JPEGEncoderAsync


//JPG encoding
  private function resizeFile( argBitmap : Bitmap ) :void
  {
   var resizeScale : Number = 1;
   var tempBitmap : Bitmap  = argBitmap;  
   
   if( 1.33 * this.getFileSizeAtKByte( this.fileRef.size ) > ( this.maxFileSize / 1024 ) ) {
   
    resizeScale = Number( ( this.maxFileSize / ( this.fileRef.size * 1.33 ) ).toFixed( 2 ) );    
   
    tempBitmap.scaleX = tempBitmap.scaleY = resizeScale;
    tempBitmap.smoothing = true;
 
       if( tempBitmap.width > MAX_BITMAP_DATA_SIZE || tempBitmap.height > MAX_BITMAP_DATA_SIZE ) {
     if( tempBitmap.width > tempBitmap.height ) {          
      tempBitmap.width = MAX_BITMAP_DATA_SIZE;          
      resizeScale = tempBitmap.scaleY = tempBitmap.scaleX;     
     } else {          
      tempBitmap.height = MAX_BITMAP_DATA_SIZE;    
      resizeScale = tempBitmap.scaleX = tempBitmap.scaleY;
     }
    }   
   }
   
   var m:Matrix = new Matrix();
   m.scale( resizeScale , resizeScale);
      
   var bitmapData:BitmapData = new BitmapData( int( tempBitmap.width ), int( tempBitmap.height ) );      
   bitmapData.draw( argBitmap  , m );   
    
   //jpgEncoder = new JPEGEncoderAsync(100);
     this.jpgEncoder.encodeAsync(  bitmapData );
   this.jpgEncoder.addEventListener( Event.COMPLETE , jpgEncodeComplete);      
}

private function jpgEncodeComplete( e: Event ) : void
{  
   var resizedFile : ByteArray = jpgEncoder.ImageData; // 바이트 어레이로 변환      
}