Attempting to capture a scene using BitmapData

I am trying to capture part of a scene area using the 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 am sure that the error is in the Bitmap procedure and not in saving ...

+4
source share
3 answers

Finally, this solution was used to copy part of the stage.

(I copied everything on the scene (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); 
+6
source

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

0
source
  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
source

Source: https://habr.com/ru/post/1304200/


All Articles