我有以下代码:
var imageScreenshot:BitmapData = new BitmapData(675, 540);
imageScreenshot.draw( stage, null, null, "normal", new Rectangle(297, 163, 675, 540),true);
var jpgEncoder:JPGEncoder = new JPGEncoder(100);
var jpgBytes:ByteArray = jpgEncoder.encode(imageScreenshot);
var fileRef:FileReference = new FileReference();
fileRef.save(jpgBytes, "output.jpg");
我希望某个特定区域被“截屏”并输出为.jpeg文件,所以我在舞台上绘制了一个矩形,覆盖了我要截取的区域,取了x,y,width和height值并键入他们进入上面的代码,然后删除矩形,但输出有很多空的空间到顶部和左边,我想摆脱这个,但减少BitmapData
的大小最终削减部分我想截图的阶段。
我不太确定问题是什么?
答案 0 :(得分:0)
我认为您应该使用clipRect
裁剪位图,而不是使用临时位图和copyPixels()
所需区域。
var imageScreenshot:BitmapData = new BitmapData(675, 540);
var tempBD:BitmapData=new BitmapData(stage.stageWidth,stage.staheHeight);
tempBD.draw( stage, null, null, "normal", null,true);
imageScreenshot.copyPixels(tempBD,new Rectangle(297, 163, 675, 540),new Point(0,0));
var jpgEncoder:JPGEncoder = new JPGEncoder(100);
var jpgBytes:ByteArray = jpgEncoder.encode(imageScreenshot);
var fileRef:FileReference = new FileReference();
fileRef.save(jpgBytes, "output.jpg");
如果这仍然产生空白空间或舞台的错误部分,请检查实际坐标。