再往DjVu鼓吹者的头上敲一棒子
最近在某论坛又看到有人在鼓吹DjVu,甚至声称拿到PDG就转成DjVu,忍不住想再敲打敲打。
早几年前就已经有人举出过实例,证明PDG、TIFF转DjVu会因为有损压缩而产生错别字,似乎时间长了一堆新人又不知道了,或者以为以前的例子都是低分辨率图像,现在分辨率高了,不会再有事了——还真是图样图森破。
那就再给大家见识一个高分辨率扫描图像转DjVu后出问题的例子:
http://djvu.org/gallery/documents/magazines/computerworld/index.djvu
把文件下载下来后用WinDjView打开,拖到最后一页,看到那个空荡荡的椭圆白框了吗?你不觉得在那个位置出现这么一个空白区有点反人类?

用最新版DjVuToy把这个DjVu文件转换成PDF,在同样位置你是不是看到了点什么:

如果还不死心,可以用DjVuToy导出该页的字典图像,然后你就会看清楚究竟损失了什么。
那么问题来了:
1、djvu.org网站在DjVu方面的专业性需要怀疑吗?你自己鼓捣的DjVu文件,有可能比这种专业网站专门做出来当门面的文件质量更高吗?
2、用DjVuToy导出信息可以看到,这一页的DPI是600,你这辈子到手的PDG文件就算再清晰,有可能达到600 DPI吗?你到手的扫描图像,有几张能真正达到600 DPI?
3、即使是这样专门制作来当门面的高分辨率DjVu,都会出现把图像内容“有损”掉的情况,那些误信DjVu的人是不是真心“无知者无畏”?那些鼓吹DjVu的人是不是要么蠢要么坏?
我可以理解某些人追求DjVu是为了节省硬盘空间,但我相信等到他们过了“贫穷限制想象力”的阶段,就会发现省下来的钱都用来交智商税了,说不定还不够。毕竟有些资料是有窗口期的,等过了窗口期,想洗牌都找不到原始文件了。
BTW:PDF的JBig2压缩与DjVu的JB2压缩是一路货色,在采用有损压缩时同样存在把某些内容“有损”掉的可能,这就是为什么我说我在有选择的情况下,从来不要DjVu或从DjVu转出来的PDF(不论是否采用JBig2压缩),或者直接采用JBig2压缩的PDF的原因:我可以从数学上证明DjVuToy从JB2到JBig2的转换过程是无损的,但我没有办法证明我拿到的DjVu或PDF在制作时,究竟选择了有损还是无损的JBig2压缩,所以这种格式的电子书不管你们信不信,我自己反正是不信的。
再往DjVu鼓吹者的头上敲一棒子的更多相关文章
- ios开发之再谈设计模式
子曰:设计模式这东西,没有好坏之分,只有合适于不合适 天去面试很有意思,技术考官指着最后一道二选一的编程题说,这是昨天晚上专门为你新加的.当时我听后倍感惭愧. 虽然当时在纸上把大概思路和设计说了下.为 ...
- DjVu、PDF中的隐藏文本
作者:马健邮箱:stronghorse_mj@hotmail.com发布:2012.06.11 目录一.背景二.DjVu中的隐藏文本三.PDF中的隐藏文本 一.背景 目前对于扫描电子文档,网上比较流行 ...
- 洋媳妇Susan教育孩子的方法
洋媳妇Susan教育孩子的方法 一个中国婆婆跟我说:「我的儿子去美国留学,毕业后定居美国. 还给我找了个洋媳妇Susan. 如今,小孙子Toby已经3岁了. 今年夏天,儿子為我申请了探亲签证. 在美国 ...
- KaiWu 的体验
KaiWu 的体验 来源 https://www.zhihu.com/question/28950444 >>>>>>>>>>>> ...
- 学习 git基础命令
缘起 年后到了新公司,由于个人意愿到了一个海外的项目组,除了自己从Java技术栈转了C#技术栈外,很多技术都是第一次使用,学习压力不小啊. 自己也就先从常用的技术开始学起,比如C#,AngularJS ...
- 课程设计 --- 黑白棋中的 AI
原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...
- mybatis使用generator生成对应的model、mapping配置文件、dao
http://blog.csdn.net/fengshizty/article/details/43086833 使用时 补充 输入命令:cd d:\generator 敲回车 再输入命令:d: 敲 ...
- Java Socket Server的演进 (一)
最近在看一些网络服务器的设计, 本文就从起源的角度介绍一下现代网络服务器处理并发连接的思路, 例子就用java提供的API. 1.单线程同步阻塞式服务器及操作系统API 此种是最简单的socket服务 ...
- 阿帕奇apache服务器和webDav服务器快速配置。
当自己在家敲代码需要发请求时,就可以配置本地apache,Mac电脑自带的服务器.这个比windows上的本地服务器还要好用,下面写下最快速配置方案. 0.在开始之前需要给自己的电脑设置下开机密码,想 ...
随机推荐
- BUUCTF--不一样的flag
测试文件:https://buuoj.cn/files/91b89e765c9aff8e82690c0868975b37/0bf39b5d-5f2f-4095-a921-fb5c20f53f21.zi ...
- 关于在IE下JavaScript的 Stack overflow at line 错误可能的原因
该错误只在IE中出现,出现该提示的原因主要有两种: 1. 重定义了系统的触发事件名称作为自定义函数名如: onclick / onsubmit … 都是系统保留的事件名称,不允许作为重定义函数名称 ...
- ltp-ddt lmbench
ltp-ddt lmbench args='' # getopt fails, set help optionif [ $? -ne 0 ] ; then H="help&qu ...
- $NOIP2018$ 爆踩全场记
NOIP2018 Day-1 路还很长. 这里就是起点. 这是最简单的一步,但这是最关键的一步. 联赛就在眼前了,一切好像都已经准备好了,一切好像又都没准备好. 相信自己吧,\(mona\),这绝对不 ...
- BZOJ3227 [sdoi2008]红黑树
贪心什么的太神仙了( 老老实实dp于是就是沙茶题了 f[i][d][0/1]表示i个节点bh为d当前节点颜色白/黑[好好读题是真.. 转移一下然后就可以打表了( 由于我们发现这玩意很好卡有很好的性质( ...
- word里输入英文字母间距变宽,字体改变,怎么回事?
word里输入英文字母间距变宽,字体改变,怎么回事? 你有没有遇到下面这种情况,在word里输入英文,变的很奇怪,就像下面图中那样: 是不是很蛋疼?看起来很别扭. 那是因为输入法是全角状态 我们只要把 ...
- python实现简单接口
接口实现 import flask,json server=flask.Flask(__name__)#__name__代表当前的python文件.把当前的python文件当做一个服务启动 @serv ...
- Window下设置Octave
从 http://sourceforge.net/projects/octave/files/Octave_Windows%20-%20MinGW/Octave%203.6.0%20for%20Win ...
- android智能手机如何查看APK包名
工具/原料 智能手机一部 USB线一根 方法/步骤 1 首先.使用USB线,将电脑和手机连起来.注意.手机的USB调试默认需要打开,如下图所示. 2 然后启动电脑端的cmd应用,进入dos界面 ...
- Java Web学习总结(12)Filter过滤器
一,Filter简介 Filter也称之为过滤器,Filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理. 二,Filter开发步骤 1)编写一个 ...