AS3 – Bitmap to ByteArray y ByteArray to Bitmap

Publicado por Iván Gajate el 20 de agosto de 2013 en AS3, Flash

He encontrado esta utillería muy maja para convertir un Bitmap en un ByteArray y viceversa.

Yo la he modificado un pelín para que acepte el smoothing como parámetro en la conversión a Bitmap, algo que me parece muy necesario:

 

package au.com.dashdigital.utils{
 
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.utils.ByteArray;
 
	public class BitmapSerialize {
 
		/**
		* Bitmap to ByteArray
		*/
		public static function encode(bitmap:Bitmap):ByteArray {
			bitmap.smoothing = true;
			var bytes:ByteArray = new ByteArray  ;
			bytes.writeUnsignedInt(bitmap.bitmapData.width);
			bytes.writeBytes(bitmap.bitmapData.getPixels(bitmap.bitmapData.rect));
			bytes.compress();
			return bytes;
		}
 
		/**
		* ByteArray to Bitmap
		*/
		public static function decode(bytes:ByteArray,pixelSnapping:String="auto",smoothing:Boolean=false):Bitmap {
			var bitmap:Bitmap = null;
			try {
				bytes.uncompress();
				var width:int = bytes.readUnsignedInt();
				var height:int = bytes.length - 4 / 4 / width;
				var bmd:BitmapData = new BitmapData(width,height,true,0);
				bmd.setPixels(bmd.rect,bytes);
				bitmap = new Bitmap(bmd,pixelSnapping,smoothing);
			} catch (e:Error) {
				trace('BitmapSerialize error uncompressing bytes');
			}
			return bitmap;
		}
 
 
	}
}

 

Los comentarios están cerrados.