java元数据提取器标签描述

标签 java android metadata-extractor

我正在使用 Java 库元数据提取器,无法提取标签 使用下面的 getUserCommentDescription 方法代码正确描述, 尽管 tag.getDescription 确实有效:

String exif = "File: " + file;
File jpgFile = new File(file);
Metadata metadata = ImageMetadataReader.readMetadata(jpgFile);

for (Directory directory : metadata.getDirectories()) {
    String directoryName = directory.getName();
    for (Tag tag : directory.getTags()) {
       String tagName = tag.getTagName();
       String description = tag.getDescription();
       if (tagName.toLowerCase().contains("comment")) {
          Log.d("DEBUG", description);
       }
       exif += "\n " + tagName + ": " + description;  //Returns the    correct values.
       Log.d("DEBUG", directoryName + " " + tagName + " " + description);
   }
   if (directoryName.equals("Exif IFD0")) {
      // create a descriptor
      ExifSubIFDDirectory exifDirectory =   metadata.getDirectory(ExifSubIFDDirectory.class);
      ExifSubIFDDescriptor descriptor = new     ExifSubIFDDescriptor(exifDirectory);
      Log.d("DEBUG","Comments: " +    descriptor.getUserCommentDescription()); //Always null.
  }

我在这里遗漏了什么吗?

最佳答案

您正在检查目录名称 Exif IFD0,然后访问 ExifSubIFDDirectory

在循环外尝试此代码:

Metadata metadata = ImageMetadataReader.readMetadata(jpgFile);
ExifSubIFDDirectory exifDirectory = metadata.getDirectory(ExifSubIFDDirectory.class);
ExifSubIFDDescriptor descriptor = new ExifSubIFDDescriptor(exifDirectory);
String comment = descriptor.getUserCommentDescription();

如果返回null,那么它可能是 encoding issue or bug 。如果您运行此代码:

byte[] commentBytes =
    exifDirectory.getByteArray(ExifSubIFDDirectory.TAG_USER_COMMENT);

数组中有字节吗?

如果是这样,请在issue tracker中打开一个问题并包含可用于重现问题的示例图像。您必须授权您提供的任何图像在公共(public)领域使用。

关于java元数据提取器标签描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28171689/

相关文章:

java - Android 上的转换器应用程序错误

android - 单击最后一个项目后在 Activity 中启用按钮

java - 如何在 Java 中从 JPEG 中读取 XMP 人脸数据

java - 创建文本文件 Java 时出错

java - ArrayList 和 Arrays.asList() 的 Junit 断言错误

java - C# 中的散列字符串不可读

JAVA:如何访问另一个对象的子类?

java - 使用自定义类加载器时覆盖 IntelliJ 中的调试类路径

java - 隐藏 ActionBar(定时)和动画 View

java - 使用 Java 从 tif 文件中提取 IPTC/EXIF 数据