我正在使用常规方法来检查透明位图上的随机/单个像素是否非零,使用bitmapData.getPixel32(x,y)!=0
但是有没有更快的方法来做到这一点,因为这有点重性能。我认为必须有办法做到这一点,也许使用 byteArray?
我怎样才能以最好的方式做到这一点?提前致谢!
我正在使用常规方法来检查透明位图上的随机/单个像素是否非零,使用bitmapData.getPixel32(x,y)!=0
但是有没有更快的方法来做到这一点,因为这有点重性能。我认为必须有办法做到这一点,也许使用 byteArray?
我怎样才能以最好的方式做到这一点?提前致谢!
您可以找到一篇非常有趣的文章,介绍使用矢量和 getVector 方法处理像素。
Mike Chambers 在 Grant Skinner 的性能工具的帮助下对此进行了案例研究,并正在寻找提高 AS3 性能的方法。在这里阅读所有相关信息:
http://www.mikechambers.com/blog/2009/10/13/case-study-actionscript-3-performance-optimization/
您也许可以通过使用 bitmapData.getColorBoundsRect() 并检查非透明像素来加快速度。
然后您只需要检查边界矩形内的像素,因为您知道矩形外的所有像素都必须是透明的。
// returns bounds rectangle for all non transparent pixels
bitmapData.getColorBoundsRect(0xFFFFFFFF, 0x000000, false);