Camera API是否可用于缩放图像?

时间:2015-08-01 22:08:24

标签: android image cordova cordova-plugins

我的Cordova应用程序(适用于Android)是从设备的照片库中发送的图像URI,然后我打算处理它们 - 调整大小,改变质量等。

目前,我可以在应用视图中显示图像,但加载时间很长,有时图像会旋转。

在这种情况下,依赖Camera api进行缩放和其他图像处理是一种常见的用例吗?到目前为止,我的实验似乎只是确认Camera API对于引出用户的选择很有用,而我会以编程方式为其提供URI。

1 个答案:

答案 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"。这将为您分配一个更大的堆,这是专门用于像应用程序这样需要更大内存的图像处理。