如何编辑图像元数据?

时间:2019-08-26 19:08:34

标签: java image metadata

我想读取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;
    }
}

问题是未保存更改。 是否可以使用此库保存更改?如果没有,我该如何实现呢?实际上,不可能使用该库来编写元数据。还有另一个图书馆可以做到这一点吗?

0 个答案:

没有答案