通过阅读LibTIFF源代码,在我看来,自定义LibTIFF的main approach是定义新标签和实现新的编解码器。此外,由于LibTIFF是开源的并且具有自由许可,因此需要为各种目的进行调整的用户可以直接修改它。
然而,有一种自定义似乎不适合两种扩展方法:我想安装各种事件监听器(回调函数),以便我可以检测现有内部发生的各种情况编解码器。
示例#1:我希望能够替换LibTIFF的错误/警告消息处理程序,以便它是线程安全的,并将消息发送到调用者设置的回调函数。
示例#2:某些TIFF图像可能缺少某些标记,LibTIFF会尝试通过猜测它们的值来弥补它们。有时一些标签显然是错误的,LibTIFF试图纠正它们。但是,我希望有一个回调函数,当LibTIFF更改标记的值时会通知它,这样我就可以记录它并生成一个关于图像符合标准的报告。
示例#3:我需要将多页TIFF的多个页面连接在一起。页面具有相同的尺寸和压缩参数。如果我可以访问压缩数据,那么我可以通过将压缩数据逐字复制到新TIFF图像的条带中来更有效地完成此操作。
向LibTIFF添加回调函数/事件侦听器的推荐方法是什么,而不会使其架构复杂化?