【问题标题】:Capturing an image without storing it to internal/external storage捕获图像而不将其存储到内部/外部存储
【发布时间】:2018-05-28 09:27:46
【问题描述】:

出于安全原因,我需要将通过相机捕获的图像传输到服务器“而不将其存储到内部或外部存储中”。请帮忙!

【问题讨论】:

  • 分享你到目前为止所尝试的。
  • 为什么不直接存储、上传、删除?
  • 将其设为base64字符串并发送,这样您就不需要存储它了。

标签: android android-camera


【解决方案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 的完整差异

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 2014-09-22
      相关资源
      最近更新 更多