作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用此代码通过 apache commons.imaging(快照)获取这三个不同的元数据属性(“对象名称”、“图像描述”和“关键字”)。但是,我不知道如何写入此属性。有人知道正确的方法吗?提前致谢...
IImageMetadata metadata = null;
String name;
try {
metadata = Imaging.getMetadata(new File(filename));
} catch (ImageReadException | IOException e) {
}
if (metadata instanceof JpegImageMetadata) {
final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
final List<IImageMetadataItem> items = jpegMetadata.getItems();
for (int i = 0; i < items.size(); i++) {
final IImageMetadataItem item = items.get(i);
name = item.toString().substring(0, item.toString().indexOf(":"));
switch (name) {
case "Object Name" :
case "ImageDescription" :
case "Keywords" :
System.out.println(item.toString());
break;
}
}
}
最佳答案
format overview page apache.commons.imaging 表示不支持 IPTC 元数据写入,但支持 EXIF 元数据写入。为了编写 EXIF 元数据,我还用谷歌搜索并找到了一个 example。 .所以你需要做的是:
final TiffImageMetadata exif = jpegMetadata.getExif();
TiffOutputSet outputSet = exif.getOutputSet();
然后添加或删除和添加(=updating)标签,最后:
new ExifRewriter().updateExifMetadataLossless(jpegImageFile, os, outputSet);
使用 jpegImageFile 一个文件(输入)和一个 OutputStream 到输出文件。
关于java - 如何将元数据写入 .JPG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19246709/
我是一名优秀的程序员,十分优秀!