java 元数据提取器标签说明
java metadata-extractor tag description
我正在使用 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();
如果这个 returns null
那么它可能是一个 encoding issue or bug。如果您 运行 此代码:
byte[] commentBytes =
exifDirectory.getByteArray(ExifSubIFDDirectory.TAG_USER_COMMENT);
数组中有字节吗?
如果是这样,请在 issue tracker 中提出一个问题,并提供可用于重现问题的示例图片。您必须授权您提供的任何图像在 public 域中使用。
我正在使用 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();
如果这个 returns null
那么它可能是一个 encoding issue or bug。如果您 运行 此代码:
byte[] commentBytes =
exifDirectory.getByteArray(ExifSubIFDDirectory.TAG_USER_COMMENT);
数组中有字节吗?
如果是这样,请在 issue tracker 中提出一个问题,并提供可用于重现问题的示例图片。您必须授权您提供的任何图像在 public 域中使用。