-1

我正在使用 ExifInterface 在我的 Java Android Studio 应用程序的 jpeg 文件中读取 UserComments EXIF 标记。

我可以在 Linux 中使用 exiftool 命令来验证 UserComment 字段中是否有数据。

ExifInterface exif = new ExifInterface(inputStream);
String s = exif.getAttribute(ExifInterface.TAG_USER_COMMENT);

运行时,字符串 s 包含“UNICODE”。

知道这是怎么回事吗?

另外,我计划阅读其他 EXIF 标签。我可以多次调用 getAttribute() 还是需要以某种方式在调用之间重置流?

提前致谢!

4

1 回答 1

0

想通了第一部分。

我没有使用 exif.getAttribute(),而是使用了 exif.getAttributeBytes()。这会将其读入字节数组。然后我使用 String 函数将字节数组转换为字符串。这样做之后,字符串前面仍然有字符“UNICODE”,所以我用 substr() 将其修剪掉。

结果如下:

byte[] s = exif.getAttributeBytes(ExifInterface.TAG_USER_COMMENT);
String u = new String(s, StandardCharsets.UTF_8).substring(7);
于 2020-03-09T18:18:50.317 回答