簡體   English   中英

MediaStore.Images.Media.getBitmap需要太多時間

[英]MediaStore.Images.Media.getBitmap takes too much time

我想檢查一下外部存儲設備中的照片中是否至少有一張人臉。

我這樣查詢外部內容:

   queryTimeTaken += measureTimeMillis {
        try {
            cursor = context.contentResolver.query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                projection,
                null,
                null,
                sortOrderAndFetchLimit
            )
        } catch (e: Exception) {
            println("Error when executing query(): $e")
        }
    }

獲得uri需要0.004s

getUriTimeTaken += measureTimeMillis {
    uri = ContentUris.withAppendedId(
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, cursor.getInt(cursor.getColumnIndex(MediaStore.Images.ImageColumns._ID)).toLong())

}

getBitmap()需要太多時間。 大約需要10秒鍾。

getBitmapTimeTaken += measureTimeMillis {
    bitmap = MediaStore.Images.Media.getBitmap(context.contentResolver, uri)
}

getBitmap()占用總時間的90%,因此這里是瓶頸。 我有什么可以做得更快?

我沒有使用全尺寸圖像,而是使用它們的縮略圖,並且比以前更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM