位图数据保存在错误的坐标处

时间:2014-02-11 17:09:49

标签: actionscript-3 flash

我有以下代码:

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的大小最终削减部分我想截图的阶段。

我不太确定问题是什么?

1 个答案:

答案 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");

如果这仍然产生空白空间或舞台的错误部分,请检查实际坐标。