Снимок Flex / actionscript с прямоугольником отсечения и матрицей масштабирования - PullRequest
1 голос
/ 29 января 2010
var snapshot:ImageSnapshot = ImageSnapshot.captureImage(someSprite);
var file:FileReference = new FileReference();
file.save(snapshot.data,'abc.png');

В приведенном выше коде я могу захватить изображение.

Но я также хочу применить scalingMatrix (для zoomIn / Out) и прямоугольник отсечения.

Как это сделать?

Я тоже пытался capturebitmapdata , но с этим я даже не могу получить правильное изображение. Смотрите здесь . Так что я не хочу этим пользоваться.

1 Ответ

0 голосов
/ 01 февраля 2010
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');

Приведенный выше код позволяет рисовать только часть внутри прямоугольника клипа. В моем случае мне не нужно было принимать во внимание матрицу масштабирования, хотя Я использовал функции увеличения / уменьшения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...