7

我知道可以通过在 ExifInterface 中指定字符串标签来获取特定的 exif 数据。例如,获取图像的日期将类似于:

ExifInterface exif = new ExifInterface(pathToImage);
exif.getAttribute(ExifInterface.TAG_DATETIME);

有没有一种方法可以简单地获取所有可用的非空 exif 字符串,而不必为每个字符串手动编写获取代码?

4

1 回答 1

3

您可以将要查询的所有标签组成一个数组,并将查询的非空结果放入集合(可能是 hashmap)或其他东西(可能是 JsonObject)中。

Kotlin 中的示例:

    val pathToImage = "..."
    val exif = ExifInterface(pathToImage)
    val tagsToCheck = arrayOf(
        ExifInterface.TAG_DATETIME,
        ExifInterface.TAG_GPS_LATITUDE,
        ExifInterface.TAG_GPS_LONGITUDE,
        ExifInterface.TAG_EXPOSURE_TIME
    )
    val hashMap = HashMap<String, String>()
    for (tag in tagsToCheck)
        exif.getAttribute(tag)?.let { hashMap[tag] = it }
于 2014-01-26T09:28:39.600 回答