繁体   English   中英

如何获取图像的 bitmap?

[英]How do I get the bitmap of an image?

在我的onActivityResult function 中,我有以下代码行:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if (requestCode == CAMERA_REQUEST_CODE) {
        val foodBitmap = Objects.requireNonNull(Objects.requireNonNull(data)!!.extras)!!["data"] as Bitmap?
        food_image.setImageBitmap(foodBitmap)
    }
    super.onActivityResult(requestCode, resultCode, data)
}

For foodBitmap it's inferred type is Bitmap , but I need to ensure that it's type is Bitmap for another function that I'm using which expects a parameter of type Bitmap . 我目前无法将foodBitmap传递给 function 因为它需要一个Bitmap并且不认为foodBitmap是一个Bitmap 如何修复那行代码?

foodBitmap的推断类型不是Bitmap ,而是可为空的类型Bitmap? . 因此,您有三个选择:

  1. 将初始化foodBitmap的代码更改为:

     val foodBitmap = Objects.requireNonNull(Objects.requireNonNull(data).!.extras)!!["data"] as Bitmap
  2. 在您的其他 function 中将参数更改为Bitmap? 或者

  3. 当您调用 function 时,请使用let function:

     foodBitmap?.let { otherFunction(it) }

你可以简单地拥有这个: -

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { 
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == CAMERA_REQUEST_CODE && data != null) {
        val foodBitmap = data.extras?.get("data") as Bitmap
        food_image.setImageBitmap(foodBitmap)
      }
}

您将获得foodBitmap作为Bitmap ,您可以直接将其传递到您的 function。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM