2014-09-30 58 views
0

我使用LeeBurrows/Async-Image-Encoders庫將影片剪輯保存到SD卡。 我的影片剪輯尺寸爲1080 X 1920。 這裏是我的代碼:AS3:將movieclip的一部分保存爲PNG

 myBitmapData = new BitmapData(1079, 1500, true, 0x00000000); 
     encoder = new AsyncPNGEncoder(); 

     myBitmapData.draw(movieClip1); 
     encoder.start(myBitmapData, 40); 

的代碼工作正常,圖像保存在1080×1920尺寸。 但是如何保存影片剪輯的一部分。 例如,從點(50,50)開始,尺寸爲400 X 600,則矩形爲(50,50,400,600)。

+0

BitmapData的繪製方法也接受矩陣作爲可選參數。對矩陣執行翻譯操作並在函數調用中傳遞它。 – DodgerThud 2014-09-30 09:01:40

回答

0

使用像這樣的裁切功能。

public function crop(_x:Number, _y:Number, _width:Number, _height:Number, displayObject:DisplayObject = null):Bitmap 
{ 
    var cropArea:Rectangle = new Rectangle(0, 0, _width, _height); 
    var croppedBitmap:Bitmap = new Bitmap(new BitmapData(_width, _height), PixelSnapping.ALWAYS, true); 
    croppedBitmap.bitmapData.draw((displayObject!=null) ? displayObject : stage, new Matrix(1, 0, 0, 1, -_x, -_y) , null, null, cropArea, true); 
    return croppedBitmap; 
}