1

我正在查看 icafe 库的示例https://github.com/dragon66/icafe以了解如何操作图像元数据,但我找不到任何示例。

我正在尝试向 exif 元数据添加一个字段,例如Description并向该字段添加一些示例文本。

另外,根据我的发现,我似乎无法判断 icafe 是否可以处理图像输入流,或者它是否需要存储在磁盘上的文件的绝对路径?

4

1 回答 1

0

虽然 wiki 页面上没有示例,但实际上有一个关于如何操作元数据的详细示例,可以在源代码包 com.icafe4j.test 中找到。该类的名称是TestMetadata,它向您展示了如何插入不同的元数据,如 EXIF、IPTC、XMP、评论、缩略图等。

ICAFE 与 InputStream 和 OutputStream 一起使用。因此,它是否来自本地文件并不重要,只要它是一个 InputStream 即可。如果您只想添加一些评论,您可以简单地执行以下操作:

FileInputStream fin = new FileInputStream("input.png");
FileOutputStream fout = new FileOutputStream("comment-inserted.png");

Metadata.insertComments(fin, fout, Arrays.asList("Comment1", "Comment2"));

只要格式支持某些元数据,上述代码同样适用于 JPEG、TIFF、PNG、GIF 等常见图像格式。

如果你想使用 Exif,你可以使用:

Metadata.insertExif(InputStream fin, OutputStream fout, Exif exif, boolean upate);

它还有一个参数“update”来控制是否要保留原始 Exif 数据(如果存在)。可以从同一示例中找到有关如何创建 Exif 实例的详细信息。

于 2016-10-30T00:39:32.843 回答