AS3 - 尝试调整BitmapData的大小,但Matrix不会改变任何东西

时间:2012-12-03 17:11:28

标签: actionscript matrix resize bitmapdata

情况就是这样:在我的舞台上,我有一个引用BitmapData对象的Bitmap对象。我的Bitmap对象是全屏的,所以1366x768。

另一方面,我有一个函数(来自库,因此我无法编辑它)返回带有新图片的BitmapData。该图片为640x480,每秒调用一次该函数。

这就是问题所在:我无法找到将返回的图片缩放到全屏的方法。我尝试使用Matrix和.draw方法,但什么也没做。

以下是一些代码:

var mat:Matrix = new Matrix();
mat.scale(0.52, 0.52); // I tried with other values such as 2 but the picture stays the same
// scr_bmp is the BitmapData attached to the displayed Bitmap
// capt.bmp is the BitmapData returned by the function
// I tried without the new Rectangle but that doesn't change anything
scr_bmp.draw(capt.bmp, mat, null, null,new Rectangle(0, 0, 640, 480), true);

使用此代码,新图片会正确显示,但原始尺寸为640x480,屏幕的其余部分为空白。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

嗯...嗯...

mat.scale(scr_bmp.width/capt.bmp.width,scr_bmp.height/capt.bmp.height);
var smallBitmap:Bitmap=new Bitmap(capt.bmp);
scr_bmp.fillRect(scr_bmp.rect,0x00808080);
scr_bmp.draw(smallBitmap,mat);

尝试过不同尺寸,但它对我有用。但我使用的是AS3,而不是AS2。