首页 > 解决方案 > 将 Uri 转换为位图

问题描述

我想将 Uri 从 .takePicture 方法转换为位图以供以后使用,我搜索了不同的方法,但每个方法都给了我一个错误,说位图为空,有时“int android.graphics.bitmap.getwidth()”打开一个空对象引用”。


var imageUri:Uri?=null
    private fun takePhoto() {

        val photofile = File(externalMediaDirs.firstOrNull(), "picture - ${System.currentTimeMillis()}.jpg")
        val output = ImageCapture.OutputFileOptions.Builder(photofile).build()
        var image_View = findViewById<ImageView>(R.id.imageView)

        imageCapture?.takePicture(output, ContextCompat.getMainExecutor(this), object : ImageCapture.OnImageSavedCallback {
            override fun onImageSaved(outputFileResults: ImageCapture.OutputFileResults) {
                Toast.makeText(applicationContext, "Pic saved.", Toast.LENGTH_LONG).show()
                imageUri = outputFileResults.savedUri
                //image_View.setImageURI(imageUri)
            }

            override fun onError(exception: ImageCaptureException) {
                Toast.makeText(applicationContext, "Error saving pic!", Toast.LENGTH_LONG).show()
            }
        })
}

标签: androidkotlinuriandroid-bitmapandroid-image

解决方案


试试这个片段

        Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);

推荐阅读