После прочтения исходного кода LibTIFF мне кажется, что основной подход *1002* к настройке LibTIFF заключается в определении новых тегов и реализации новых кодеков.Кроме того, поскольку LibTIFF имеет открытый исходный код и имеет либеральную лицензию, пользователи, которым необходимо настроить его для различных целей, могут изменять его напрямую.
Однако существует такая настройка, которая, кажется, не вписывается вдва подхода к расширению: я хочу установить различные виды слушателей событий (функции обратного вызова), чтобы я мог обнаруживать различные условия, которые происходят внутри существующих кодеков.
Пример # 1: я хочу иметь возможность заменитьобработчики сообщений об ошибках / предупреждений LibTIFF, так что они поточнобезопасны и отправляют сообщения в функцию обратного вызова, установленную вызывающей стороной.
Пример # 2: в некоторых изображениях TIFF могут отсутствовать некоторые теги, и LibTIFF пытаетсячтобы составить их, угадав их значения.Иногда некоторые теги явно неверны, и LibTIFF пытается их исправить.Тем не менее, я хотел бы иметь функцию обратного вызова, которая уведомляется всякий раз, когда LibTIFF изменяет значение тега, чтобы я мог зарегистрировать это и сгенерировать отчет о соответствии изображения стандарту.
Пример # 3: Мне нужнообъединить несколько страниц многостраничного TIFF вместе.Страницы имеют одинаковые размеры и параметры сжатия.Если у меня есть доступ к сжатым данным, я могу сделать это более эффективно, скопировав сжатые данные в виде полос нового изображения TIFF.
Каков рекомендуемый способ добавления функций обратного вызова / прослушивателей событий вLibTIFF, не усложняя его архитектуру?