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, 图像压缩, 图像处理, 数字文档, 数据擦除, 文件格式