我得到图像乌里
val launcher = rememberLauncherForActivityResult(ActivityResultContracts.PickVisualMedia()){uri = it}
launcher.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))
字符串
我需要得到这个图像的大小
val painter = rememberAsyncImagePainter(uri)
return painter.intrinsicSize
型
但返回Unspecified size
和
val options = BitmapFactory.Options()
options.inJustDecodeBounds = true
BitmapFactory.decodeFile(uri.path, options)
Log.d("MyLog", "${options.outWidth}, ${options.outHeight}")
return IntSize(options.outWidth, options.outHeight)
型
但它返回IntSize(0,0)
如何获取图像的宽度和高度?
2条答案
按热度按时间5us2dqdw1#
要从
Uri
获取图像的宽度和高度,您可以使用ContentResolver
打开InputStream
,然后使用BitmapFactory
解码尺寸。下面是一个示例:字符串
你可以这样使用这个函数:
型
contentResolver
通常是从上下文中获取的。请确保您具有从给定Uri
读取的必要权限。此外,此函数使用协程在后台执行I/O操作,因此请确保您的项目设置为使用协程。*x8goxv8g2#
它的发生与
字符串