我想使用Android相机拍摄图像,但因为图像可能包含敏感数据,所以我不希望将图像保存到手机或SD卡中。相反,我想要一个base64字符串(压缩),它将立即发送到服务器
在PhoneGap中,似乎文件会自动保存到各个地方。 原生我从来没有能够获得图像流 - 在onJpegPictureTaken()中,byte []参数始终为null。
有人可以建议吗?
答案 0 :(得分:1)
请参阅Camera.onPreviewFrame()和YuvImage.compresstoJpeg()以获取可以转换为位图的字节数组。
请注意,YuvImage.compressToJpeg()仅在SDK 8或更高版本中可用。对于早期版本,您需要实现自己的YUV解码器。有几个例子或者,我可以给你一个例子。
这两种方法将允许您在内存中获取相机图片,并且永远不会将其保留到SD。请注意,大多数相机预览尺寸的位图会很快咀嚼内存并且您需要非常小心地回收位图,并且可能还需要将它们缩小一点以对它们做很多事情并且仍然适合本机堆限制在大多数设备上。
祝你好运!