Давно собирался создать блок EXIF для комментария к изображению WebP, но никак не мог придумать, как удобнее приготовить данные. Но недавно нашел этот способ - создал комментарий для файла JPG. Вот что получилось:
Только я никак не могу понять - почему созданный комментарий использует порядок обмена байтов? У мелкомягких все не как у людей.
Файлы лежат тут. Нужно запустить writeexif.exe, ввести текст, получится my_exif.exif.
Нужно исправить пакетный файл:
webpmux.exe -strip exif john.webp -o john_.webp
webpmux -set exif my_exif.exif john_.webp -o john_e.webp
pause
Первая строка удалит чанк EXIF из существующего файла. Вторая строка допишет чанк к файлу john.webp и создаст новое изображение john_e.webp. Как видно, JPEG view показывает информацию изображения после нажатия F2.
На этом исследования не кончились. Я стал проверять блоки EXIF с помощью утилки webpmuxx.exe и сравнил результат вывода информации с работой написанной мной программы.
На одном файле получился разный результат размера блоков. Стал разбираться и запутался еще больше - про чанки EXIF пишут разное, исходники libwebp запутали еще больше. Вчера вечером разобрался с проблемой - заголовок WebP хранится в формате RIFF у которого блоки нечетной длины дополняются байтами для того, чтобы размер стал четным.Исправил код, теперь информация выглядит корректно, если не считать, что к размеру данных добавляется 8 байт : блок FourCC и слово длины блока.
Комментарии
Отправить комментарий