2010-01-29 49 views
1
var snapshot:ImageSnapshot = ImageSnapshot.captureImage(someSprite); 
var file:FileReference = new FileReference(); 
file.save(snapshot.data,'abc.png'); 

在上面的代碼中,我能夠捕捉圖像。具有剪切矩形和縮放矩陣的Flex /動畫快照

但我也想對其應用scalingMatrix(用於放大/縮小)和剪切矩形。

怎麼辦?

我試過capturebitmapdata也是如此,但是我甚至無法得到正確的圖像。請參閱here。所以我不想使用它。

+0

最終我可以完全取消ImageSnapshot類。 – dharm0us 2010-02-01 13:23:17

回答

0
sw = someSprite.stage.stageWidth;    
sh = someSprite.stage.stageHeight;   
var cr:Rectangle = new Rectangle(x,y,cw,ch);//you have to check that this clip rectangle should not overshoot your stage 
//cr is the clip rectangle 
var bmp:BitmapData = new BitmapData(sw,sh); 
bmp.draw(someSprite,null,null,null,cr); 

var bmp1:BitmapData = new BitmapData(cw,ch); 
bmp1.copyPixels(bmp,cr,new Point(0,0)); 
var enc:JPEGEncoder = new JPEGEncoder(); 
var data:ByteArray = encoder.encode(bmd1); 
new FileReference().save(data,'image.jpeg'); 

上面的代碼允許您只繪製剪切矩形內的部分。 在我的情況下,我沒有考慮到縮放矩陣,儘管我使用的是放大/縮小功能 。