Take a snapshot of a DisplayObject rendered inside the Flash Player and have the byte array available for server side processing or for reuse inside the Flash application.
import com.adobe.images.*;
import com.dynamicflash.util.Base64;
import flash.display.DisplayObject;
import flash.geom.Rectangle;
import flash.utils.ByteArray;
function capture(target:DisplayObject, options:Object, format:String):void{
var relative:DisplayObject = target.parent;
var rect:Rectangle = target.getBounds(relative);
var bitmapData:BitmapData = new BitmapData(rect.width, rect.height);
bitmapData.draw(relative, new Matrix(1, 0, 0, 1, -rect.x, -rect.y ));
var byteArray:ByteArray;
switch (format){
case "JPG":
var jpgEncoder:JPGEncoder = new JPGEncoder(JPG_QUALITY_DEFAULT);
byteArray = jpgEncoder.encode(bitmapData);
break;
case "PNG":
byteArray = PNGEncoder.encode(bitmapData);
break;
}
var byteArrayAsString:String = Base64.encodeByteArray(byteArray);
// Send the data to the server