libexif -------
libexif 是一个用于解析、编辑和保存 EXIF 数据的库。它 旨在取代命令行工具和 GUI 程序中的大量重复实现。
libexif 支持 EXIF 数据的解析、编辑和保存。此外,它 还支持 gettext。EXIF 标准 2.1(以及 2.2 中的大多数标签)中描述的所有 EXIF 标签 均受支持。来自 Canon、Casio、Epson、 Fuji、Nikon、Olympus、Pentax 和 Sanyo 相机的许多厂商备注也受支持。
libexif 使用纯 C 语言编写,不需要任何额外的库。 如果可用,将使用 GNU gettext 进行语言翻译。
libexif 只能处理部分厂商备注,而且处理得也不是很好。还有更多 工作要做。请注意,libmnote 已合并到 libexif 中 - 它已不再需要。
我们已经使用 doxygen 记录了 libexif API,并将在 http://libexif.sourceforge.net/api/ 提供结果。
test 目录中的简短测试程序演示了如何从零开始创建 有效的 EXIF 数据、如何保存 EXIF 数据以及如何从内存中的数据加载 EXIF 数据。此外,在 contrib/examples/ 目录中还提供了一些简单的示例程序。 如果您对如何使用 libexif 有任何疑问,请随时通过 [email protected] 联系我们。
要将 libexif 链接到您自己的软件包中,我们建议使用 pkgconfig 工具 (参见 http://www.freedesktop.org/wiki/Software/pkg-config/)。 为方便起见,libexif 同时提供 libexif-uninstalled.pc,并会 安装 libexif.pc。
目前,我所知的 libexif 前端如下:
如果您希望将程序迁移到使用 libexif,或为其添加 EXIF 支持, 请随时联系作者。
据我所知,以下库使用或受到了 libexif 的启发:
要让 libexif 成功构建,具体操作实际上取决于您的环境。 从源代码 tar 包构建通常涉及以下命令:
./configure make sudo make install
从 CVS 源码构建时,通常需要执行类似以下步骤:
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
或者,通常只需:
autoreconf -i ./configure make
除了标准参数外,configure 还接受几个特定于 libexif 的参数:
--disable-docs 禁用生成任何文档 --enable-internal-docs 若 Doxygen 可用,则构建内部代码文档 --enable-ship-binaries 在 'make dist' 中包含 Windows DLL
某些专业应用可以缩减 libexif 二进制文件的大小, 方法是在配置时于 CPPFLAGS 环境变量中设置以下一个或两个宏。 每个宏都会从二进制文件中移除特定类型的 文本字符串和常量。需要访问特定已知 EXIF 标签并 预先知道其数据含义的应用程序, 无需这些字符串,可以通过消除它们来节省 大量空间。
-DNO_VERBOSE_TAG_STRINGS EXIF 标签的名称和描述、调试消息、 必填的 EXIF 字段(禁用自动标签修复) -DNO_VERBOSE_TAG_DATA 枚举的标签数据内容的名称
libexif 的翻译由志愿者自行完成, 他们要么直接与 libexif 项目合作,要么通过两个翻译协调站点之一, 即 Translation Project http://translationproject.org/domain/libexif.html 和 Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12。 由 Translation Project 协调的语言翻译的任何更新 都必须通过其网站进行,但所有其他语言都可以 通过 Launchpad(首选)或直接将更新发送到 libexif 开发者邮件列表来更新。截至本文撰写时, 以下语言必须通过 Translation Project 更新: cs da de es fr it ja nl pl sk sv uk vi
如果您有兴趣将 libexif 翻译成一种新语言,我们 建议您加入上述翻译小组之一,并利用 他们为帮助您而构建的系统。在 Translation Project,libexif 不需要翻译免责声明;进行翻译即表示您默认同意 按照与 libexif 其余部分相同的许可条款 提供该翻译(LGPL)。
libexif 最初由 Curtis Galloway 编写 [email protected]。由于原始设计不支持编辑和保存, Lutz Mueller [email protected] 从头重写了 libexif。此后,又有许多人贡献于 libexif。
如果您有兴趣了解关于 EXIF 的更多信息,下面是一些您可能想查看的链接。