使用缩放矩阵绘制间歇性bitmapdata

时间:2009-09-10 22:38:00

标签: flash actionscript-3 actionscript

我们发现当我们使用draw将一个bitmapdata绘制到另一个bitmapdata时,缩放变换有一个上限。在某些时候,IBitmapDrawable参数不再在目标位图上呈现。

有谁知道这个上限的参数是什么?这是在某处记录的吗?

4 个答案:

答案 0 :(得分:1)

docs说:

  

最大宽度和最大高度   一个BitmapData对象是2880像素。

我猜你正在达到这个限制。

答案 1 :(得分:1)

注意:在flash 10中,该限制已被删除

答案 2 :(得分:1)

实际上这个主题非常棘手......有一些记录在案的限制,但在不同场景和Flash Player版本中存在许多不同的未记录限制...例如,查看这篇文章及其评论: http://www.bit-101.com/blog/?p=2067

如果你允许我自己引用^^

  

我有同样的问题,我想   这不是真正的平局()   限制,但一个DisplayObject ...   例如:

var bmp=new BitmapData(8000,100,false,0);
var bmp2=new BitmapData(8000,10,false,0xFF0000);
bmp.draw(bmp2);
     

完美地工作......与其他人一样   fillRect和applyFilter等方法。   但是,如果你尝试绘制()它会失败   任何超过4079像素的DisplayObject   水平,或垂直4082   (根据getColorBoundsRect)。

此外,SO中有几个类似问题的主题: maximum size of a sprite in as3?

答案 3 :(得分:1)

虽然BitmapData在constructed(f9中为2880x2880,f10中为16,775,168个总像素区域)时具有其大小的上限,但我们发现在转换bitmapData并仅绘制其中的一部分时会应用稍微不同的约束

如果你的bitmapData的大小是1x1px,你可以将它缩放到最大值8191x8191px(比你可以在f10中构造的BitmapData大得多)并将位图绘制到另一个位图中。如果您将位图缩放到大于该位图,则它将不会显示。