如何使用带有arcore的Android获取以mm为单位的真实图片尺寸

Posted

技术标签:

【中文标题】如何使用带有arcore的Android获取以mm为单位的真实图片尺寸【英文标题】:How to get the real picture size in mm using Android with arcore 【发布时间】:2022-01-21 19:12:42 【问题描述】:

我想用android中的arcore将图片的宽高以像素为单位转换为毫米,我该怎么做呢?

【问题讨论】:

【参考方案1】:

试试这个,

fun getImageWidthAndHeight(context: Context, uri: Uri): Pair<Float, Float> 
    val exif = try 
        context.contentResolver.openInputStream(uri)?.let 
            ExifInterface(it)
         ?: return 0f to 0f
     catch (e: FileNotFoundException) 
        return 0f to 0f
    

    val width = exif.getAttributeInt(ExifInterface.TAG_IMAGE_WIDTH, 0).toFloat()
    val height = exif.getAttributeInt(ExifInterface.TAG_IMAGE_LENGTH, 0).toFloat()

    return when (
        exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL)
    ) 
        ExifInterface.ORIENTATION_ROTATE_90, ExifInterface.ORIENTATION_ROTATE_270 -> height to width
            else -> width to height
    

...
val (width, height) = getImageWidthAndHeight(context, uri)

【讨论】:

以上是关于如何使用带有arcore的Android获取以mm为单位的真实图片尺寸的主要内容,如果未能解决你的问题,请参考以下文章

我的Android进阶之旅如何在Android中使用ARCore来增强人脸Augmented Faces?

检测带有 ARCore 的点击事件是不是击中了已添加的 3d 对象

如何在 ARCore Android 中禁用表面检测

如何以毫秒为单位获取带有 unix 时间戳的人类可读日期? [复制]

ARcore:如何围绕Y轴旋转对象?

无法在 Android Studio 模拟器上安装 ARCore