捕获图像而不将其存储到内部/外部存储
Posted
技术标签:
【中文标题】捕获图像而不将其存储到内部/外部存储【英文标题】:Capturing an image without storing it to internal/external storage 【发布时间】:2018-05-28 09:27:46 【问题描述】:出于安全原因,我需要将通过相机捕获的图像传输到服务器“而不将其存储到内部或外部存储中”。请帮忙!
【问题讨论】:
分享你到目前为止所尝试的。 为什么不直接存储、上传、删除? 将其设为base64字符串并发送,这样您就不需要存储它了。 【参考方案1】:为此,您需要将 android 应用程序连接到 Web 服务,方法是将其存储在内存中的 Bitmap 变量中,并在使用代码或将图像发送到服务器后销毁它。
【讨论】:
【参考方案2】:您可以使用Camera#takePicture(...),它将通过PictureCallback返回作为字节数组拍摄的图片。
这是一个拍照的伪代码。
Camera.ShutterCallback shutterCallback = () -> Log.i("Shutter has been triggered");
Camera.PictureCallback rawCallback = (data, camera) -> Log.d("Picture has been taken.");
Camera.PictureCallback jpegCallback = (data, camera) ->
// Do something with the picture here.
;
Camera camera = Camera.open();
camera.startPreview();
camera.takePicture(shutterCallback, rawCallback, jpegCallback)
请注意,此示例使用"old" Camera V1 API,这与Camera V2 API 非常不同。您可以查看this post 了解这两个 API 的完整差异
【讨论】:
以上是关于捕获图像而不将其存储到内部/外部存储的主要内容,如果未能解决你的问题,请参考以下文章