从相机拍摄原始照片

时间:2019-12-02 11:57:38

标签: java android kotlin android-camera android-camera2

因此,我正在尝试使用闪光灯从手机的后置摄像头拍摄图片,但似乎当调用captureImage时,camerakit库返回了一个字节数组,

我不确定它们是jpeg还是原始字节(我想要什么),我尝试的另一件事是使用camera2 API,但看起来很复杂(不确定是否也是正确的方法),我找不到很好的方法。原始格式的教程,仅为jpeg。

有人可以帮助我提供教程,示例或建议吗?

3 个答案:

答案 0 :(得分:0)

示例项目,请参见:Raw-Dumper

答案 1 :(得分:0)

https://github.com/android/camera-samples/tree/master/Camera2Formats是用于捕获RAW缓冲区的官方camera2示例。

它以Adobe DNG格式保存它们。

答案 2 :(得分:-1)

出于相机意图拍摄照片会给出一个字节数据。

幸运的是,从字节转换为位图并不难。

启动摄像头意图

private fun dispatchTakePictureIntent() {
    Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent ->
        takePictureIntent.resolveActivity(packageManager)?.also {
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE)
        }
    }
}

拍照后获取结果

  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if(requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {
        val bitmap = data?.extras?.get("data") as Bitmap
        imageView.setImageBitmap(bitmap)
    }
    super.onActivityResult(requestCode, resultCode, data)
}

注意:

imageView = setImageBitmap(bitmap)  

imageView是布局中的我的imageView

参考: https://developer.android.com/training/camera/photobasics