簡體   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