Я пытаюсь преобразовать код, который пишет 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());
код работает, и я могу видеть теги xmp и exif, используя программу просмотра exif (http://regex.info/exif.cgi) но сайт тоже предупреждает меня
ExifTool
Warning ExifIFD pointer references previous ExifIFD directory
что означает это предупреждение и как я могу это исправить?
Предупреждение означает, что данные exif записаны неправильно и не соответствуют спецификации exif. Попробуйте вернуться назад, чтобы увидеть, где данные повреждены или даже если exif-блок правильно создается в памяти.