Масштабирование и обрезка изображения с фиксированными размерами - PullRequest
2 голосов
/ 10 декабря 2011

Я хочу отобразить изображение, и оно должно быть преобразовано следующим образом:

Если, например, мое исходное изображение имеет размер 200x300 пикселей, я хочу, чтобы оно имело ширину 150, а затем масштабироватьвысота соответственно.Затем я хочу обрезать изображение так, чтобы результат имел размер 150x150 пикселей.

Я пробовал несколько способов, но не понял, как это сделать.

1 Ответ

3 голосов
/ 10 декабря 2011

Вы можете рассчитать масштабный коэффициент, разделив новую ширину на старую ширину:

var scale : Number = 150 / myImage.width;
myImage.scaleX = myImage.scaleY = scale;

Чтобы обрезать, используйте mask в масштабированном клипе или рисуйте в новый битмап:

var myBitmapData : BitmapData = new BitmapData ( 150, 150 );
// use concatenated matrix of the image to scale the new bitmap data
var matrix : Matrix = myImage.transform.concatenatedMatrix; 
myBitmapData.draw ( myImage, matrix );

var myBitmap : Bitmap = new Bitmap ( myBitmapData );
addChild ( myBitmap );

В зависимости от количества изображений и того, что вы собираетесь с ними делать позже, вы всегда должны проверять обе возможности на производительность.

...