Настройка LibTIFF с различными функциями обратного вызова / прослушивателями событий - PullRequest
1 голос
/ 05 апреля 2011

После прочтения исходного кода LibTIFF мне кажется, что основной подход *1002* к настройке LibTIFF заключается в определении новых тегов и реализации новых кодеков.Кроме того, поскольку LibTIFF имеет открытый исходный код и имеет либеральную лицензию, пользователи, которым необходимо настроить его для различных целей, могут изменять его напрямую.

Однако существует такая настройка, которая, кажется, не вписывается вдва подхода к расширению: я хочу установить различные виды слушателей событий (функции обратного вызова), чтобы я мог обнаруживать различные условия, которые происходят внутри существующих кодеков.

Пример # 1: я хочу иметь возможность заменитьобработчики сообщений об ошибках / предупреждений LibTIFF, так что они поточнобезопасны и отправляют сообщения в функцию обратного вызова, установленную вызывающей стороной.

Пример # 2: в некоторых изображениях TIFF могут отсутствовать некоторые теги, и LibTIFF пытаетсячтобы составить их, угадав их значения.Иногда некоторые теги явно неверны, и LibTIFF пытается их исправить.Тем не менее, я хотел бы иметь функцию обратного вызова, которая уведомляется всякий раз, когда LibTIFF изменяет значение тега, чтобы я мог зарегистрировать это и сгенерировать отчет о соответствии изображения стандарту.

Пример # 3: Мне нужнообъединить несколько страниц многостраничного TIFF вместе.Страницы имеют одинаковые размеры и параметры сжатия.Если у меня есть доступ к сжатым данным, я могу сделать это более эффективно, скопировав сжатые данные в виде полос нового изображения TIFF.

Каков рекомендуемый способ добавления функций обратного вызова / прослушивателей событий вLibTIFF, не усложняя его архитектуру?

...