我想读取PNG或JPEG图像元数据,然后对其进行修改并最终保存。
我找到了一个非常好的库(metadata-extractor),因此我现在可以通过执行以下操作来读取图像元数据:
Metadata metadata = ImageMetadataReader.readMetadata(new File("test.png"));
for (Directory d : metadata.getDirectories()) {
for (Tag t : d.getTags()) {
System.out.println(t);
}
}
然后我可以创建一个目录并在其中添加标签:
Directory d = new CustomDirectory();
metadata.addDirectory(d);
d.setInt(0, 123);
这是CustomDirectory类:
import java.util.HashMap;
import com.drew.metadata.Directory;
import com.drew.metadata.TagDescriptor;
public class CustomDirectory extends Directory {
public CustomDirectory() {
super();
setDescriptor(new TagDescriptor<CustomDirectory>(this));
}
@Override
public String getName() {
return "Custom";
}
@Override
protected HashMap<Integer, String> getTagNameMap() {
HashMap<Integer, String> tagNameMap = new HashMap<>();
tagNameMap.put(0, "A test tag");
return tagNameMap;
}
}
问题是未保存更改。 是否可以使用此库保存更改?如果没有,我该如何实现呢?实际上,不可能使用该库来编写元数据。还有另一个图书馆可以做到这一点吗?