我的Cordova应用程序(适用于Android)是从设备的照片库中发送的图像URI,然后我打算处理它们 - 调整大小,改变质量等。
目前,我可以在应用视图中显示图像,但加载时间很长,有时图像会旋转。
在这种情况下,依赖Camera api进行缩放和其他图像处理是一种常见的用例吗?到目前为止,我的实验似乎只是确认Camera API对于引出用户的选择很有用,而我会以编程方式为其提供URI。
答案 0 :(得分:1)
我不确定Cordova,但我最近使用Camera2 API,它是Android中Camera API的前身。
我认为,Camera API会向您显示相对于您从Camera API询问的选项/功能的输出。 有一种方法可以获得RAW格式(非常大)和其他格式的图像(我知道.jpg是一个选项),具有不同的尺寸和质量。你可以将它们转换成任何其他格式(从这里开始你可以使用任何东西来处理图像),应用过滤器等。
但是在显示图像时,会使用BitMap数据类型,是的,如果图像很大,则加载图像需要时间。
显然,如果你从磁盘加载它,需要时间,一般情况下,你可以通过使用缓存机制来缓解这种情况,并提供加载条以便用户作为可用性改进。
要更改质量和尺寸,BitMapFactory中提供了API。有一个非常好的教程专门针对您正在研究的区域,它使用BitMapFactory和其他相关材料。看看this也是如此。
有时,由于out或Memory问题,应用程序会崩溃,您可以在Manifest文件中使用android:largeHeap="true"
。这将为您分配一个更大的堆,这是专门用于像应用程序这样需要更大内存的图像处理。