Turn your BitmapData into a string and back! Great for storing images in XML, Databases, or transmitting them over a network. This post will cover Bitmap Encoding, PNG Encoding and JPG Encoding along with the pros and cons for each.

Bitmap Encoding - (link)

Actionscript:
  1. // Encode
  2. var encoded:String = BitmapEncoder.encodeBase64(bitmap.bitmapData);
  3.    
  4. // Decode
  5. var bd:BitmapData = BitmapEncoder.decodeBase64(encoded);

Advantages:
Keep transparency
Fastest Method
Does not require a Loader

Disadvantages:
Largest Filesize
Will only work with images up to a certain size

PNG Encoding - (link)

Actionscript:
  1. // Encode   
  2. var ba:ByteArray = PNGEncoder.encode(bitmap.bitmapData);
  3. var encoded:String = Base64.encodeByteArray(ba);
  4.  
  5. // Decode   
  6. var decoded:ByteArray = Base64.decodeToByteArray(encoded);
  7. var loader:Loader = new Loader();
  8. loader.loadBytes(decoded);

Advantages:
Keep transparency
Smaller filesize than Bitmap Encoding

Disadvantages:
Slower than Bitmap Encoding
Larger than JPG Encoding
Requires Loader

JPG Encoding - (link)

Actionscript:
  1. // Encode
  2. var jpgEncoder:JPGEncoder = new JPGEncoder();
  3. var ba:ByteArray = jpgEncoder.encode(bitmap.bitmapData);
  4. var encoded:String = Base64.encodeByteArray(ba);
  5.  
  6. // Decode
  7. var decoded:ByteArray = Base64.decodeToByteArray(encoded);
  8. var loader:Loader = new Loader();
  9. loader.loadBytes(decoded);

Advantages:
Smallest Filesize
Variable Quality

Disadvantages:
Slower than Bitmap Encoding
No Transparency
Requires Loader

Tags: ,