2011-02-10 119 views
3

我想用Android相机捕捉图像,但因为图像可能包含敏感数据,我不希望将图像保存到手机或SD卡上。相反,我想要一个base64字符串(压缩),它将立即发送到服务器如何在不将文件保存到手机/ SD卡的情况下捕获Android相机图像?

在PhoneGap中,似乎文件自动保存到各个位置。 原生我从来没有能够得到图像流 - 在onJpegPictureTaken()字节[]参数始终为空。

任何人都可以提出一种方法吗?

回答

1

请参阅Camera.onPreviewFrame()和YuvImage.compresstoJpeg(),以便能够获取可以转换为位图的字节数组。

请注意,YuvImage.compressToJpeg()仅在SDK 8或更高版本中可用,我认为。对于早期版本,您需要实现您自己的YUV解码器。有几个例子或者,我可以给你一个例子。

这两种方法将允许您在内存中获取相机图片,并且永远不会将其保存到SD。请注意,大多数相机预览尺寸的位图会快速消化内存,并且您需要非常小心地回收位图,并且可能还需要稍微缩小它们以适应它们,并且仍然适合本机堆限制在大多数设备上。

祝你好运!

相关问题