提高Android Bitmap上getpixel()和setpixel()的速度

时间:2011-01-17 17:11:19

标签: java android performance bitmap

所有

在我注意到getPixelsetPixel有多缓慢(不确定哪一个,猜测两者都不是涡轮增压)后,我快速编写了使用Bitmap的{​​{1}}容器用于处理位图操作的数组。

已经 - 明显更快,但这还不够。请问您如何进一步加快速度?

我的想法是跟踪int[]函数“脏”的内容,并在调用setPixel时仅更新Bitmap的这一部分...不清楚如何设置getBitmap()参数虽然(我猜的是偏移量和步幅)。

另外 - 任何更快的食谱?

提前感谢您的帮助!

setPixels

2 个答案:

答案 0 :(得分:4)

对于像setPixel / getPixel这样简单的函数,函数调用开销相对较大。

直接访问pixels数组而不是通过这些函数要快得多。当然这意味着你必须公开pixels,从设计的角度来看这不是很好,但是如果你绝对需要你可以获得的所有性能,那么这就是要走的路。

另请参阅Android文档中的Designing for performance

如果仍然不够,请考虑使用NDK在C ++中编写位图操作。

答案 1 :(得分:0)

另一种选择是使用android ndk。当谈到你没有什么帮助,但它确实提高了速度