0

サイズが 3264x2448 の JPG をスプライトにロードしました。Sprite を BitmapData オブジェクト (CS3/Flash Player 9 では高さまたは幅が 2880 に制限されています) に描画できるように、プロポーショナルにサイズを変更するにはどうすればよいですか。私の目標は、Soulwire [DisplayUtils][1] を使用してサムネイルを作成することです。以下は、他の小さなスプライトで問題なく動作するコードです。

var bmpd:BitmapData = new BitmapData(jpgSprite.width, jpgSprite.height, true, 0x00FFFFFF);
bmpd.draw( jpgSprite );

var thumb:Bitmap = DisplayUtils.createThumb( bmpd, 100, 100, Alignment.MIDDLE, true);
addChild( thumb );

あなたの提案に感謝します。

4

1 に答える 1

2

マトリックスを使用して縮小するとうまくいくと思います。ただし、コードはテストしていません。

var w:Number = 3264;
var h:Number = 2448;
var scale:Number = w / 2880;
var bmpd:BitmapData = new BitmapData(2880, h / scale, true, 0x00FFFFFF);
var matrix:Matrix = new Matrix();
matrix.createBox(scale, scale)
bmpd.draw(jpgSprite, matrix);
于 2009-10-19T04:16:52.330 に答える