我目前正在将位图写入png文件,也正在从文件中读回位图。我正在寻找提高写入和读取速度的方法。由于我需要将它们读回以进行编辑,所以图像必须是无损的。
我看到最差性能的地方是实际的 BitmapFactory.decode(...)
。
几个问题:
1. 有没有更快的解决方案,可以使用NDK从文件中读写位图?
2. 有没有更好的库可以更快地解码位图?
3. 存储和读取位图的最佳方法是什么?
我目前正在将位图写入png文件,也正在从文件中读回位图。我正在寻找提高写入和读取速度的方法。由于我需要将它们读回以进行编辑,所以图像必须是无损的。
我看到最差性能的地方是实际的 BitmapFactory.decode(...)
。
几个问题:
1. 有没有更快的解决方案,可以使用NDK从文件中读写位图?
2. 有没有更好的库可以更快地解码位图?
3. 存储和读取位图的最佳方法是什么?
BitmapFactory
最为有效。尝试使用NDK进行编码/解码,但并没有什么区别。
基本上,使用无损PNG格式是最好的选择,因为不会在编辑图像后失去任何质量。
所有这些中的主要概念是,我需要了解编码所需时间与解码所需时间之间的差异。编码数字介于300-600ms之间,取决于图像大小,而解码速度非常快,约为10-23ms。
在理解所有这些之后,我只需创建一个工作线程,将需要编码的图像传递给它,并让它在不影响用户体验的情况下完成工作。该图像被保留在内存中以防需要立即使用,直到完全编码并保存到文件之前。