Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Устранение проблемы с добавлением метаданных в JPEG с использованием FreeImage в Delphi 11

Delphi , Графика и Игры , Изображения

При работе с изображениями в формате JPEG часто возникает необходимость добавлять метаданные, такие как автор, дата создания, камера и другие параметры съемки. Однако, при использовании библиотеки FreeImage в среде разработки Delphi 11, пользователи могут столкнуться с проблемой, когда после добавления метаданных изображение сохраняется без изменений, и новые метаданные не отображаются.

Описание проблемы

Пользователь пытается добавить метаданные к существующему файлу JPEG и сохранить изображение в новом файле, используя Delphi 11 и обертку FreeImage. Несмотря на отсутствие ошибок, добавленные метаданные в итоговом файле отсутствуют.

Пример кода

Для воспроизведения проблемы пользователь предоставил следующий код:

procedure AddTagArtistTest;
var
    fif      : FREE_IMAGE_FORMAT;
    dib      : PFIBITMAP;
    Tag      : PFITAG;
    TagValue : AnsiString;
    TagKey   : AnsiString;
    TagID    : WORD;
    Filename : String;
    Success  : Boolean;
begin
    // Инициализация переменных и загрузка изображения
    // Добавление метаданных с использованием FreeImage
    // Сохранение изображения с добавленными метаданными
end;

Подтвержденный ответ

Проблема заключается в том, что запись метаданных в формате EXIF_MAIN для JPEG изображения не поддерживается библиотекой FreeImage. Согласно документации FreeImage, доступно только чтение EXIF данных для JPEG, а не запись.

Решение проблемы

Для решения проблемы необходимо изменить формат сохранения изображения на TIFF, так как именно для этого формата поддерживается запись метаданных EXIF. Пример кода с измененным форматом сохранения:

if not FreeImage_SaveU(FIF_TIFF,
                       dib,
                       PChar(ChangeFileExt(Filename, '_2.tif')),
                       0) then

Также важно не забыть освободить память, выделенную под метаданные:

FreeImage_DeleteTag(Tag);

Альтернативные подходы

Если требуется сохранить изображение в формате JPEG с метаданными, можно рассмотреть использование других библиотек, например, CCR-Exif. Эта библиотека предоставляет функционал для записи всех необходимых метаданных в JPEG файлы.

Заключение

Пользователям, столкнувшимся с проблемой добавления метаданных в JPEG с использованием FreeImage, рекомендуется изменить формат сохранения на TIFF или рассмотреть альтернативные библиотеки, такие как CCR-Exif, которые поддерживают запись метаданных в JPEG.

Создано по материалам из источника по ссылке.

Пользователь столкнулся с проблемой добавления метаданных в JPEG файл с использованием библиотеки FreeImage в Delphi 11, где несмотря на попытки сохранить изменения, новые метаданные не сохраняются в итоговом файле.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Изображения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-20 22:42:33/0.0019810199737549/0