2014-10-01 125 views
0

我想将IPTC数据(如标题,描述或关键字)写入jpg文件,但不起作用。如果我运行示例代码,第二个jpg文件被写入,但没有示例数据。我使用的是公共图像库从阿帕奇: http://commons.apache.org/proper/commons-imaging/将IPTC数据写入jpg文件

下面是示例代码:

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); 

谁能帮助我?

回答

0

这将是简单,但并不容易,要做到这一点你自己。您需要重写EXIF APPn Market,但这可能会停止,而无需修改其余的压缩数据流。您需要阅读EXIF标准以了解元数据标签的编码方式。

0

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

良好的库,但documenation差

+0

IIM4j是从SourceForge转移到github上:https://github.com/vnesek/nmote-iim4j,并通过maven central提供。文件有所改进...如果您需要一些帮助,请告诉我。 – Vjeko 2015-01-31 14:11:59