我正在创建一个图像处理应用程序,它需要一些相当大的查找表。目前,我已将表格保存为应用程序资源/原始目录中的.txt文件,作为值为3x4913的数组(3代表R,G,B)。在应用程序启动时加载所有这些(9)LUT需要非常慢的25秒或更长时间。Android BitmapFactory.decodeResource()错误或用于加载大LUT的替代选项
我的同事建议我将LUT数据本身保存为png格式,我已经完成了9个不同的宽度为1和高度为4913的图像。我将它们放置在可绘制文件夹中并尝试解码他们使用BitmapFactory.decodeResource(),,它适用于任何其他可绘制而没有错误。当我与LUT图像做到这一点,点击调试器“查看位图”,它说:
“而评估表达错误:方法扔‘Java.Lang.IllegalArgumentExpression’例外”
我什至尝试使用一些BitmapFactory选项,但具有相同的结果:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
options.outHeight = 4913;
options.outWidth = 1;
// Error here
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), lutIds[n], options);
bitmap.getPixels(pixels, 0, 1, 0, 0, 1, 4913);
有什么建议吗?或者,或者,我还有什么想法可以快速加载每次应用程序启动时的数据。每个数字的最大值是255,因此它们可以被短裤储存。
谢谢!
注:LUT PNG图像显示精细的任何图像浏览软件
+0
“在应用程序启动时加载所有这些(9)LUT需要很慢的25秒或更长时间” - 代码生成一个包含LUT的Java类。在应用程序中包含该Java源代码。 “有什么建议么?” - 发布整个Java堆栈跟踪。 –
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态