将IPTC数据写入jpg文件

时间:2014-10-01 18:17:49

标签: java jpeg exif imaging

我想将标题,描述或关键字等IPTC数据写入jpg文件,但它不起作用。如果我运行示例代码,则写入第二个jpg文件,但没有示例数据。我正在使用Apache的commons映像库: http://commons.apache.org/proper/commons-imaging/

以下是示例代码:

TiffImageMetadata metadata = ((JpegImageMetadata)Imaging.getMetadata(new File(JPG_PATH +    
        "\\IMGP5996_empty.jpg"))).getExif();
ExifRewriter rewriter = new ExifRewriter();
TiffOutputSet outputSet = metadata.getOutputSet();
TiffOutputDirectory exif = outputSet.getOrCreateExifDirectory();

exif.add(MicrosoftTagConstants.EXIF_TAG_XPAUTHOR, "TEST_AUTHOR");
exif.add(MicrosoftTagConstants.EXIF_TAG_XPCOMMENT, "TEST_COMMENT");
exif.add(MicrosoftTagConstants.EXIF_TAG_XPSUBJECT, "TEST_SUBJECT");
exif.add(MicrosoftTagConstants.EXIF_TAG_XPTITLE, "TEST_TITLE");
exif.add(MicrosoftTagConstants.EXIF_TAG_XPKEYWORDS, "TEST_KEYWORD"); 

FileOutputStream fos=new FileOutputStream(new File(JPG_PATH + "\\IMGP5996_empty-2.jpg"));
rewriter.updateExifMetadataLossy(jpgFile, fos, outputSet);

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

我认为此时,不可能将(通过公共成像)IPTC元数据写入jpg文件: http://commons.apache.org/proper/commons-imaging/todo.html

答案 1 :(得分:0)

自己做这件事会很简单,但不是微不足道的。您需要重写EXIF APPn市场,但这可能会在不修改其余压缩数据流的情况下关闭。您需要阅读EXIF标准以了解元数据标签的编码方式。

答案 2 :(得分:0)

谢谢大家的回复 我喜欢iim4j的解决方案: http://iim4j.sourceforge.net/

图书馆很好,但文件很差