当我尝试使用libjpeg将xmp添加到jpeg时,为什么我收到此警告

时间:2015-08-26 11:11:06

标签: c++ exif xmp exiftool

我正在尝试将编写exif的代码转换为jpeg图像。原始代码是这样的:

jpeg_write_marker(&cinfo, 0xe1, (unsigned char *)&ex, exifsize);

其中ex是一个内存块,exif数据被写入其中,并且如果该块的大小则进行exifsize。

要向其添加xmp,我创建了一个示例xmp块(使用我在此处找到的示例:(https://developers.google.com/photo-sphere/metadata/?hl=en)并尝试使用以下代码将其添加到jpeg文件中:

jpeg_write_marker(&cinfo, 0xe1, xmpBlock.getData(), xmpBlock.getdataSize());

代码有效,我可以使用exif查看器(http://regex.info/exif.cgi)看到xmp和exif标签,但该网站也给了我一个警告:

 ExifTool
 Warning    ExifIFD pointer references previous ExifIFD directory

这个警告的含义是什么以及如何修复它?

1 个答案:

答案 0 :(得分:0)

警告意味着exif数据写得不正确而不是exif规范。尝试回溯以查看数据损坏的位置,或者即使在内存中正确创建了exif块。