捕获图像而不将其存储到内部/外部存储

时间:2017-12-14 10:16:10

标签: android android-camera

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

2 个答案:

答案 0 :(得分:0)

为此,您需要将android应用程序连接到Web服务,方法是将其存储在内存中的Bitmap变量中,并在使用代码或将图像发送到服务器后将其销毁。

答案 1 :(得分:0)

您可以使用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 APICamera V2 API非常不同。您可以查看this post以获取这两个API的完整差异