DjVuLibre/DjVuLibre

GitHub: DjVuLibre/DjVuLibre

DjVu 格式的 GPL 开源参考实现,提供高压缩比的扫描文档和数字图像处理库及工具集。

Stars: 7 | Forks: 1

# 1- 什么是 DJVU。 DjVu(发音同 "déjà vu")是一套压缩技术、一种文件格式, 也是一个用于在 Web 上分发数字文档、 扫描文档和高分辨率图像的软件平台。 DjVu 文档的下载和显示速度极快,并且在所有平台上看起来都完全一样。对于数字文档,DjVu 可视为 PDF 和 Postscript 的优质替代方案;对于扫描文档,它是 TIFF(和 PDF)的优质替代;对于照片和图片,它是 JPEG 的优质替代;对于大型调色板图像,它是 GIF 的优质替代。DjVu 是唯一适合分发彩色高分辨率扫描文档的 Web 格式。其他格式都无法与之媲美。 典型的 DjVu 文件大小如下: - 黑白扫描文档: 300dpi 下每页 5 到 30KB, 比 PDF 或 TIFF 小 3 到 10 倍。 - 彩色扫描文档: 300dpi 下每页 30 到 100KB, 比 JPEG 小 5 到 10 倍。 - 照片: 比 JPEG 小 2 倍, 与 JPEG-2000 大致相当。 - 调色板图像: 比 GIF 小 2 倍, 如果包含文本,最多可小 10 倍。 全球有数以百计的商业、政府和非商业网站使用 DjVu 来分发扫描文档、数字文档和高分辨率照片。 关于 DjVu 的演示和一般信息可以在 http://www.djvuzone.org 或 http://www.lizardtech.com 找到。 DjVu 最初在 AT&T Labs-Research 开发。2000 年 3 月,AT&T 将 DjVu 出售给了 LizardTech Inc.。 # 2- 什么是 DJVULIBRE? 为了推动 DjVu 成为 Web 标准,LizardTech 的管理层非常明智地于 2000 年 10 月在 GNU GPL 下发布了 DjVu 的参考实现。DjVuLibre(发音类似法语的 "déjà vu libre")是由 DjVu 原发明者维护的该代码的增强版本。它与 LizardTech 的 DjVu 软件 v3.5 兼容。 本软件包包含: - 最新版本的 C++ DjVu 参考库 - 一个功能完善的基于小波的图像压缩器。 - 一个用于黑白扫描页面的简单压缩器。 - 一个用于调色板图像(类似 GIF)的压缩器。 - 一整套用于处理和组合 DjVu 图像及文档的实用工具。 - 一组用于将 DjVu 转换为多种其他格式的解码器。 功能完善的 DjVu 文件查看器和浏览器插件 DjView4 作为独立的软件包提供。 # 3- 构建 DJVULIBRE ## 3.1- 前置条件 DjVuLibre-3.5 依赖于 Web 上可用的各种组件。 大多数最新的 Linux 发行版已经自带了这些组件。 如果您愿意,也可以下载并编译它们。 请务必阅读此文件末尾的 特定系统说明。 编译器 -- 开发使用的是 GCC g++ 编译器,因此 建议在所有平台上使用它。CLANG 编译器已经尝试过并且 似乎可以工作,但其输出尚未经过严格测试。 LIBJPEG/LIBTIFF -- 少数 DjVu 文件内部使用 JPEG 编码而不是 IW44 小波编码。这些文件使用 IJG libjpeg 库 的 6a 或 6b 版本进行处理。 一些实用程序能够读取 TIFF 文件。这些程序 依赖于 LIBTIFF 库 。 您也可以在编译 DjVuLibre 时不包含 JPEG 或 TIFF 支持。 您可能永远察觉不到其中的区别。 ## 3.2 - 配置 通常情况下,只需运行 命令 "./configure"、"make" 和 "make install",一切就能正常运行。 请注意,如果您使用 git clone 获取 djvulibre 源代码,将不会有 configure 文件。相反,会有一个脚本 'autogen.sh', 它使用 automake 生成并调用实际的 configure 脚本。 由于所有 autogen.sh 的参数都会传递给 configure, 您可以简单地将 autogen.sh 作为 configure 的替代品。 各种选项和环境变量会影响配置脚本的执行。输入 "configure --help" 可以获得完整列表。另请参阅 INSTALL 文件了解更多详情。 以下是最重要的几个选项。 * 选项 "--prefix=PREFIXDIR" 此选项指定 DjVuLibre 软件的安装位置。 默认前缀是 /usr/local。 * 选项 "--enable-desktopfiles[=(yes|no)]" 在习惯的 xdg 目录中安装图标和 mime 类型文件。 默认值为 "yes"。 * 选项 "--with-jpeg=JPEGDIR" 此选项指定已编译 JPEG 库的目录。 该目录同时包含头文件和库文件。如果不指定此选项,配置脚本将在 标准位置搜索 JPEG 库。 当所有其他方法都失败时,您可以直接定义环境 变量 JPEG_CFLAGS 和 JPEG_LIBS。 * 选项 "--with-tiff=TIFFDIR" 此选项指定已编译 LIBTIFF 库的目录。 该目录同时包含头文件和库文件。如果不指定此选项,配置脚本将在 标准位置搜索 LIBTIFF 库。 当所有其他方法都失败时,您可以直接定义环境 变量 TIFF_CFLAGS 和 TIFF_LIBS。 务必检查配置脚本的输出是否有警告和错误。 特别是,如果配置脚本找不到所需的库和实用程序,它可能会禁用 djview 的编译。警告 消息是知晓这一情况的唯一途径。 ## 3.3 - MAKE 然后您可以通过输入以下命令来执行编译 ``` $ make ``` 编译可能需要几分钟时间。再次检查输出中是否有警告 和错误。最后,一条简短的消息会通知您编译 成功。然后您就可以进行安装了。 ## 3.4 - 安装 输入: ``` $ make install ``` 或者在需要时输入: ``` $ sudo make install ``` 应该会: - 将可执行程序安装到 "${prefix}/bin/"。 - 可能将共享库安装到 "${prefix}/lib/"。 - 将 man 手册页安装在 "${prefix}/man 或 ${prefix}/share/man/" 下。 - 将各种辅助文件安装在 "${prefix}/share/djvu/" 下。 - 安装 "${prefix}/share/pkgconfig.pc"。 - 可选择安装图标和 mime 类型信息文件 其中 ${prefix} 指的是由配置脚本的 prefix 选项指定的目录, 其默认值为 "/usr/local",并且 上述路径可以通过向 ./configure 和 make 传递适当的参数进行微调。 # 4 - 为 MAC OS X 构建 我们建议您首先安装 homebrew,并使用 命令 "brew install" 获取以下软件包: $ brew install autoconf automake libtool pkg-config $ brew install jpeg libtiff 请注意,homebrew 已经自带了 djvulibre 软件包。 以下说明解释了如何以独立方式编译 djvulibre。如果您想要最新版本的 djvulibre,您可能会希望这样做。否则,很可能 您应该直接安装 djvulibre homebrew 软件包。 $ brew install djvulibre 但大多数人会发现 只需安装 homebrew 软件包就足够了。 然后您可以运行 configure $ ./configure --disable-desktopfiles 然后您可以使用以下命令编译 $ make 运行 "make install" 会将 djvulibre 安装在目录 /usr/local 中。 这可能不是个好主意,因为它们会与 homebrew 冲突。 您可以改为使用 DESTDIR=... 指定一个备用目录 $ make install DESTDIR=/usr/local/djvulibre-install # 5 - 为 WINDOWS 构建 ## 5.1- 使用 Microsoft Visual C++ 2012 请参阅 win32 目录。 使用 README 文件中建议的开源代码填充 zlib、jpeg 和 tiff 目录。 检查 win32/djvulibre/dirs.props 以查看 如何命名这些目录。 然后打开 win32/djvulibre/djvulibre.sln 并进行编译。 下一步将是遵循 djview 软件包中的说明 创建一个 djview 项目并将其 添加到此解决方案中。最后,您可以使用脚本 djvulibre-install.sh 和 djvulibre.nsi 来准备 djvulibre+djview 安装程序。 ## 5.2- 使用 Mingw 您必须首先安装 mingw 编译器和 msys 环境。 有关更多信息,请参阅 www.mingw.org。 在 msys shell 中,运行通常的命令 $ configure $ make 然后从 libdjvu/.libs 目录收集 djvulibre dll, 并从 tools/.libs 目录收集可执行文件 有关脚本 'configure' 的参数的信息, 请参阅 INSTALL 文件。 ## 5.3- 使用 Cygwin 只需运行通常的命令 $ configure $ make $ make install 有关脚本 'configure' 的参数的信息, 请参阅 INSTALL 文件。
标签:C++, DjVu, 图像压缩, 图像处理, 数字文档, 数据擦除, 文件格式