Как масштабировать вокруг точки, используя BitmapData - PullRequest
0 голосов
/ 02 июля 2011

Я искал, но не нашел никого, кто хотел бы сделать это с объектом bitmapData.

Я использую следующий код:

matrix.identity();
matrix.translate(pan.x, pan.y);
matrix.translate(-zoomPoint.x, -zoomPoint.y);
matrix.scale(scale, scale);
matrix.translate(zoomPoint.x, zoomPoint.y);

// later my draw call
this.bitmapData.draw(srcBitmap, matrix, null, null, null, true);

pan - Точка, содержащая значения перевода Шкала содержит 0..1 zoomPoint - это точка, содержащая щелчок мыши

Панорамирование работает, но при использовании этого метода масштабирование не масштабируется вокруг моей мыши. Кто-нибудь сделал это успешно?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 июля 2011

Это работает:

шкала переменных: число = 0,32;

матрица переменных: матрица = новая матрица ();

matrix.scale (масштаб, масштаб);

var smallBMD: BitmapData = новые BitmapData (bigBMD.width * scale, bigBMD.height * scale, true, 0x000000);

smallBMD.draw (bigBMD, matrix, null, null, null, верно);

var bitmap: Bitmap = new Bitmap (smallBMD, PixelSnapping.NEVER, true);

0 голосов
/ 02 июля 2011

Матрица сначала переведет шкалу, поэтому вам, возможно, придется учесть это при настройке перевода. Мне нужно было масштабировать и выбирать область ранее, и придумал это: BitmapData - масштабировать и выбирать область в одной матрице?

...