开发者

Trying to capture stage area using BitmapData

I am trying to grab part o开发者_Go百科f stage area using BitmapData and copyPixels method:

bmd = new BitmapData(stage.stageWidth, stage.stageHeight);

bmdRect = new BitmapData(320, 240);

rectangle = new Rectangle(360, 20, 320, 240); 

bmdRect.copyPixels(bmd, rectangle, new Point());

bmd.draw(bmp);
bmp = new Bitmap(bmdRect);   

var myEncoder:JPGEncoder = new JPGEncoder(100);
var byteArray:ByteArray = myEncoder.encode(bmd);

The result i get is an empty .jpg I m pretty sure that the error is in the Bitmap procedure and not the saving one...


Finally used this solution to copy part of the stage

(I copied everything that is on stage from (360, 20) and after)

var bitmapdata:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);

bitmapdata.draw(stage);

var bitmapDataA: BitmapData = new BitmapData(300, 250);

bitmapDataA.copyPixels(bitmapdata, new Rectangle(360, 20, 320, 240), new Point(0, 0));

var myEncoder:JPGEncoder = new JPGEncoder(90);

var byteArray:ByteArray = myEncoder.encode(bitmapDataA);


Can't you just call bmd.draw(stage)?


  var stage_snapshot:BitmapData = new BitmapData(600, 120);

  var myRectangle:Rectangle = new Rectangle(0, 0, 600, 120);


  var myMatrix:Matrix = new Matrix();

  var translateMatrix:Matrix = new Matrix();

  translateMatrix.translate(-100, -225);

  myMatrix.concat(translateMatrix);

  stage_snapshot.draw(stage,myMatrix,null,null,myRectangle);

  var encoded_jpg:JPGEncoder = new JPGEncoder(100);

  var jpg_binary:ByteArray = new ByteArray();

  jpg_binary = encoded_jpg.encode(stage_snapshot);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜