如何在不必编辑变换矩阵和保持高质量的情况下调整位图数据的大小

时间:2012-03-01 23:26:46

标签: actionscript-3 actionscript resize bitmapdata

我正在尝试为我们正在工作的项目调整位图大小为3.0。基本上我们有一堆sprite,它们在bitmapData上绘制,然后存储在一个向量中。向量中的数据最终存储在位图对象中。现在我想让BitmapData sprite更小,但不想更新100矩阵来做它。还有另一种方式吗?

我通过缩放显示的位图获得了一些成功,但图像看起来有点锯齿状,而且模型不会仅仅是月球漫步。

我也累了Matrix.a = 0.4matrix.d = 0.4,但这没有做任何事。

当我bitmap.scalex = 0.7scaleY相同时,它变得更小但现在它们在空中,因为x和y不对,而它们反向的代码是只是做scalX *= -1现在似乎也没有用。此外,我想出了如何将它们从空中移开,但它们就像在锯齿状和月亮行走之前所说的那样。请帮忙,因为我试图修复在我到达之前编写的代码。

基本上这里有一些代码,我得到了首席执行官的批准:

我们有这个:

var b:BitmapData = new BitmapData(CustomerRenderer.BLIT_WIDTH,      
CustomerRenderer.BLIT_HEIGHT, true, 0x00000000);
        for(var i:int=0; i<WRAPPER.numChildren; i++)
        {
            b.draw(Sprite(WRAPPER.getChildAt(i)),  
                   WRAPPER.getChildAt(i).transform.matrix, null, null, b.rect, true);
        }
        _spriteSheet[_currentFrame] = b;

然后我们在

中使用该数据
 BAKED_BITMAP.bitmapData = _spriteSheet[_currentFrame];

显示BAKED_BITMAP是位图的位置

然后翻转所有人正在做的是:

 BAKED_BITMAP.scaleX *= -1;
 BAKED_BITMAP.x = (BAKED_BITMAP.scaleX >= 0) ? 0 : BLIT_WIDTH;

感谢

1 个答案:

答案 0 :(得分:2)

您可以尝试设置smoothing对象的Bitmap属性,看看它是否能为您提供所需的效果。