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

why I am getting this warning when I try to add xmp to a jpeg using libjpeg

我正在尝试将写入 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

这个警告是什么意思,我该如何解决?

警告的意思是exif数据写入不正确,不符合exif规范。尝试回溯以查看数据损坏的位置,或者是否在内存中正确创建了 exif 块。