我用傳統的方式來檢查,如果在一個透明位圖隨機/單個像素爲非零,使用bitmapData.getPixel32(x,y)!=0
有更快的方法來檢查使用AS3的BitmapData.getPixel32()嗎?
但有一個更快的方法來做到這一點,因爲這是有點沉重的性能。我認爲一定有辦法做到這一點,也許使用byteArray?
我該如何做到最好?提前致謝!
我用傳統的方式來檢查,如果在一個透明位圖隨機/單個像素爲非零,使用bitmapData.getPixel32(x,y)!=0
有更快的方法來檢查使用AS3的BitmapData.getPixel32()嗎?
但有一個更快的方法來做到這一點,因爲這是有點沉重的性能。我認爲一定有辦法做到這一點,也許使用byteArray?
我該如何做到最好?提前致謝!
你可以在vector和getVector-method的幫助下找到一篇非常有趣的關於像素處理的文章。
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);
謝謝你,那就是我一直在尋找的! – tversteeg 2012-08-15 10:04:47