ComicEnhancer Pro：Enhance scaned comics picture by brightness, contrast, gamma correction, resize, sharpen and blur. 作者：马健 邮箱：stronghorse_mj@hotmail.com 主页：老马的原创空间 功能简介 使用说明 密技曝光 一、IJG vs. IJL 二、ComicEnhancer vs. Photoshop 三、JPEG，BMP，GIF, TIFF and PNG 六、JPEG 2000 鸣谢 附录 版本更新记录 ## 功能简介 多年来我一直是个热心的漫画读者，但现在漫画书的购置成本和储藏成本越来越高，远远超出了我的心理承受能力，所以我只敢收集电子版的漫画。但是由于种种原因，扫描的漫画常常因为纸张薄、纸质差而带有斑点、纸色、背透（纸张背面的图像透过来），或者因为扫描参数设置不当而造成图像灰暗、模糊，看起来实在是太累。 其实这些缺点均可通过数字图像处理技术进行修正，比如要消除最常见的背透现象，只要一个简单的对比度增强即可。但是一张、一张地去编辑图像文件又太累：我曾经花了两天时间 逐页校正我喜欢的一部漫画，校正完后我的眼睛看什么都带灰影，所以最终还是下定决心开发了这个软件： (1).能够一次调节指定文件夹及其子文件夹下所有图像文件的亮度、对比度、Gammar校正等，以增强图像质量； (2).能够旋转、调节图像尺寸，进行锐化、柔化，调节JPEG图像压缩比等； (3).调整好的参数设置能够保存、调入，便于重用； (4).具有全尺寸的“所见即所得”的效果预览，可以单页调节、保存，也可以成批调节、保存； (5).在源图像文件相同、参数设置相同的情况下，转换效果是可重复的。因此可以建立一种新的漫画共享模式：如果某位漫友对网上的某部漫画扫描效果不满意，用ComicEnhancer Pro进行了调整，则他可以将调整所用参数发表在BBS上，其他漫友可以套用这些参数对同一部漫画进行增强，从而大家都能得到满意的漫画。 (6).能够用减色的方式，将通常JPG格式的黑白漫画转成16级、8级、4级灰度PNG格式，减少文件长度。这个一般只对质量很好的漫画有用，正好用来对付尺寸越来越大的“完美版”漫画。 在后来的开发过程中，为了让预览功能更好用，我又陆续增加了一些图像浏览功能（参见打开图像文件后的“查看”菜单）：除了通常的用键盘翻页（逗号/句号或加号/减号）、用键盘移动大图（四个箭头键），和用鼠标拖动大图外，还支持鼠标翻页（双击左键下翻，按住左键单击右键则上翻）。 目前能够输入的图像格式包括JPG、UFO、GIF、BMP、PNG、TIFF、WMF、JPEG 2000（JP2/J2K/JPC）、WEBP，能够输出的图像格式包括JPG和BMP、PNG、TIFF、JP2。其中JPG能输出24位真彩和256级灰度格式；PNG、BMP、TIFF能够输出24位真彩、256色 、128色、64色、32色、16色、8色、4色、2色和256级、128级、64级、32级、16级、8级、4级灰度及纯黑白（二值化）格式 ，BMP还支持555和565的16位色。TIFF纯黑白图像采用CCITT G4压缩，其它采用LZW压缩。JPEG 2000支持24位真彩和256灰度图像，并可通过设置压缩率定量控制输出文件的大小。JPG支持从原JPG文件中读取压缩系数，实现近似无损的转存。 如果有本程序不能识别的非标准图像文件，请用其他软件转换成标准图像格式，再调用本程序。 注意： ComicEnhancer Pro是一个“友情软件”（Friendware），用户在承诺不用于商业目的，也不对文件及其附件进行任何更改的前提下，不需要为使用该软件支付任何费用，最多是在BBS看到我发帖子灌水时，进去捧个人场，作为友情回报，或者在年节时发个email问声好（所以叫“友情软件”）。我承诺绝不在程序中暗藏任何商业广告、木马，但不承诺为使用ComicEnahcer Pro的后果承担任何责任。如果您需要将它用于商业目的，或加入您的网站，请与我联系，否则保留追究一切责任的权利。如果您能提供更好的数字图像处理算法或源码，或发现程序的bug，欢迎与我联系。 ## 使用说明 本软件原始ZIP包中包含下列文件： ComicEnhancerPro.exe：主程序文件。 ComicEnhancerPro.htm：本帮助文件。 本软件运行过程中会生成以下文件： ComicEnhancerPro.ini：记录当前窗口状态、最近打开文件、工具条张状态等。如果窗口位置或工具条显示出现异常，先删除此文件再运行ComicEnhancerPro.exe即可恢复。 ComicEnhancerPro_Para.ini：参数记录文件，点击“保存”按钮后产生。 除此之外的所有文件均为非法添加，欢迎举报！ 启动 ComicEnhancer Pro后，显示出主框架窗口，并在下方显示参数调节对话框。用户一般先选“文件->打开”菜单调入图像文件，然后对参数进行试调节（参数项含义见后），直至满意为止。在打开文件后，用页面浏览键键（参见“查看->页面浏览”菜单项提示）可以在同一个窗口中浏览相同文件夹下的其它文件。文件的浏览顺序通过“查看->文件显示顺序”菜单项进行设置。这样可以在更大的范围内检查参数的作用效果。图像较大时可以用箭头键移动，也可以按住鼠标左键拖动。双击鼠标左键可以向后翻页，按住左键单击右键则向前翻页。 在参数确定后，选择“文件->成批转换”菜单，即可对图像文件进行批处理： 在“需增强的漫画”框中，点击“选择”按钮，选择源文件（需处理的漫画文件）所在文件夹，再从“源文件”列表中选择源文件类型。点击“查看文件”按钮可以启动 缺省图像浏览器并打开文件夹中的第一个源文件。如果“包括子文件夹”选项被选中，处理时连源文件夹所含子文件夹下的文件一起处理，否则只处理源文件夹下的文件。 在“增强后的漫画”框中，点击“选择”按钮，选择目标文件（处理后生成的新文件）的存放文件夹，再从“新文件扩展名”列表中选择目标文件类型。点击“查看文件”按钮可以启动 缺省图像浏览器并打开文件夹中的第一个目标文件。源文件和目标文件如果是同一个文件夹下，处理前会提示用户是否要覆盖源文件。 如有必要，调节“选项”框中的各个选项（含义见后）。 如有必要，可以点“选择转换”按钮，先选择几个源文件转换一下，看一下实际转换后的效果。 所有参数配置好后，点击右上方的“全部转换”按钮开始图像处理。处理过程中底部的进度条会显示当前处理进度，处理完后弹出对话框显示需处理的文件数、成功处理的文件数。如果有文件不能成功处理（不能读或不能写），会提示用户打开处理过程的记录文件，从中可以知道具体哪些文件不能读或写。不能读的原因可能是源文件损坏，或不是标准的文件格式，可以用ACDSee转换一下再重试。不能写的原因可能是因为目标 文件夹不允许写，或磁盘空间不够。 在点击“全部转换”按钮开始处理后，“全部转换”按钮变成“停止转换”按钮，其它按钮、选项变灰。用户点击“停止转换”按钮可以中断正在进行的处理。 如果对调整效果比较满意，点击“保存”按钮可以将参数存盘。点击“调入”按钮可以调入以前存盘的参数。点击“恢复”按钮则将参数设置为默认值。如果需要删除某次保存的参数值，点击“调入”按钮，在打开“参数管理”对话框后，选择欲删除的设置，点“删除”按钮。 提示： 源文件夹最好和目标文件夹不一样，避免覆盖，并且可以反复处理。 由于各选项的参数值与具体图像情况有关，因此如果一次需要处理的图像很多，最好先从中选择几张进行试调节，参数调试好后再对所有文件进行最终调节，以节省运行时间。 从1.24版开始，原来的“转换”按钮更改为“全部转换”，即对源文件夹下的所有文件进行转换，适用于参数已确定的情况；新增“选择转换”按钮，允许对选定的（多个）文件进行转换，适用于参数尝试、调整阶段。 参数调节步骤： 首先是保障纸张方向与阅读方向一致，不一致则选择旋转90度、180度，或镜像、翻转。 如果图像存在黑边、照度不均匀等问题，应该先进行切边、照度修正等，避免后续处理被垃圾部分所影响。 如果彩色页面明显发白，或因为纸张陈旧而发黄， 或因为拍摄时光线不足造成偏色，可以试着选择自动白平衡、自动色阶或自动对比度 、自动亮度，把颜色矫正过来。 在无偏色的情况下，首选是曲线功能，此功能大致相当于Photoshop的Curve功能，但是内置了几种调节模式。一般先根据图像情况选择其中的某种模式，再对调节点进行调节。 如果对曲线功能调节效果不满意，则选择“原画面保持不变”模式，改用其它调节方式。一般画面背景透光严重时，可以增加画面对比度。 如果调节后图像整体发白，或文字、边线较模糊、黯淡，可增加Gamma校正值，或选择自动色阶、自动对比度等。 如果画面模糊，可以选择锐化选项。如果图像边线、文字比较单薄，有间断，或图像放大后锯齿比较严重，可选择柔化或高斯模糊操作。 如有必要，调节图像缩放比例。如果需要放大的比例超过200%，需改为在切边中设置纸张尺寸和DPI。 如果希望生成的JPG文件更小一点，可以减小JPG质量；如果生成的是JPEG 2000（JP2），则可调节JP2压缩率。 对于黑白漫画，色彩选项选为“256级灰度”可以使生成的文件小一些；如果画面非常干净，也可以选择“16级灰度”、“8级灰度”或“4级灰度”，并选择按PNG格式输出，可以获取最佳压缩比。对于纯文字页面，选“单色”，并选择按TIFF格式输出，可以获取最佳压缩比。如果需要处理的漫画中包含彩色封面，可以勾选“不处理彩色图像文件”选项，以避免损失。 如果浏览的是纯文字页面（扫描电子书），并且笔画较细影响阅读，可以选择“加粗”、“柔化”选项进行加粗。 处理过程中可以显示直方图，查看是否处理过头。 更详细的教程参阅我写的《ComicEnhancerPro 系列教程》，更多的处理实例参见我放出来的DIY扫描仪拍书处理例子。 参数项的含义： 1. 亮度 范围0～200，100表示亮度不变，小于100则图像变暗，大于100则图像变亮。增加亮度一般可以消除斑点、背透、纸张颜色、印刷时油墨不匀造成的黑印，但是较淡的文字、边线可能会更看不清。 减小亮度可以使白纸变灰，也有人喜欢这样的感觉。 2. 对比度 范围0～200，100表示图像不变，小于100则图像变灰，大于100则图像更加黑白分明，可以解决背景杂乱等问题。 3. 高亮度 范围0～200，100表示高亮区（图像空白区）亮度不变，小于100则高亮区图像变暗，大于100则高亮区图像变亮。所谓“高亮区”，其实是由旁边的“高亮值”定义的 ，即亮度处理只针对比“高亮值”更亮（白）的像素。在使用本功能去除背景上的纸色、背透时，如果增加高亮值，可以保护较淡的文字、边线，但是去除效果就会下降；如果减少高亮值，去除效果就会更明显，但可能会误伤较淡的文字、边线。因此应该优先使用曲线、对比度等调节手段，不行再试这个。 4. 高亮值 定义高亮度区加亮功能的“高亮区”：当象素的亮度值（0～255）大于等于该值时，象素处于高良区，执行加亮操作，否则保持不变。一般来讲，增加此值时，可以保护较淡的文字、边线，但是去除 背景效果就会下降；如果减少此值，去除效果就会更明显，但可能会误伤较淡的文字、边线。 5. 曲线 大致相当于Photoshop的曲线（Curve）功能，专业术语称“对比度延展”。此功能可以综合调节画面对比度和亮度，并且设置了几种典型模式，应该是首选的调节手段，宜勤加练习。 在选择预设模式后，如果对曲线的效果不满意，可以用鼠标拖动曲线上的两个大黑点（控制点）来改变曲线的形状：上方控制点控制图像的明亮区域，如背景上的纸纹，当上方控制点位于灰色45度线之上时，会使亮区更亮，否则更暗；下方控制点控制的是图像上的暗区，如黑色的线条、文字等，当下方控制点位于灰线下方时，暗区更暗，否则更亮。因此： 当两个控制点均位于灰线上方时，对整幅图像具有增亮作用。控制点离灰线越远，亮得越厉害。 当两个控制点均位于灰线下方时，对整幅图像具有增暗作用。控制点离灰线越远，暗得越厉害。 当上方控制点位于灰线之上，而下方控制点位于灰线之下，则白的越白，黑的越黑，因此可以消除背景杂乱：杂乱的背景归属亮区，增亮后就成白色了，而暗区得到了增黑。拖动控制点可以控制增暗、增亮的幅度，即对比度。 当上方控制点位于灰线之下，而下方控制点位于灰线之上，则亮区、暗区都往中间灰度靠拢，整幅图像的对比度降低，看起来灰蒙蒙的。处理扫描图像时一般不会这么玩，处理人像照片时偶尔会有人这么干，以掩饰人物皮肤上的一些缺陷。 从实际使用反馈来看，大多数人用曲线多半是点“背景杂乱”去背景，但敢拖拽控制滑块的人真心不多，所以在曲线下方还加了一个滑动条，拖拽滑动条也可以调节曲线去背景。 如果单纯靠曲线解决不了“背景杂乱”问题，可以试试“曲线”界面下方的两个强力去背景选项，通常只需将“画面”条往右拉，即可解决纸张发黄、背景杂乱等。不过这个选项效果太强烈，建议慎用。 两个选项的含义： 画面：滑动条上的游标位于左侧时，整幅图像发暗；游标越往右去，图像越黑白分明。 背景：游标越往右，背景越明显。通常保持在最左侧就好。 6. Gamma校正 范围0～300，100表示图像不变，小于100则图像变白，大于100则图像变黑，有助于解决因增加亮度、对比度、高亮度等而造成的画面发白，并能使模糊、黯淡的文字、边线变得更坚实，当然如果图面上有麻点也会变得更显眼。 7. 尺寸缩放 范围0～200，100表示图像尺寸不变，小于100则输出图像变小，但图像可能会更清晰（致密）；大于100则输出图像变大，但可能会更模糊，需采用锐化等操作进行弥补。 如果觉得200%的放大倍率还不够，可以不在这里设置缩放比例，而是在“切边”里通过页面尺寸和DPI进行设置，那个允许放得更大。 8. JPG质量 范围0～100，此值越低表示存盘后的JPG图像质量越差，但文件长度更小；此值越高表示存盘后的质量越好，但文件长度更大。 如果点击设置，可以对JPG质量和文件大小进行更进一步的控制： 优先使用原JPG质量系数：如果此选项被选中，并且源文件也是JPG，则不使用上面选定的“JPG质量”系数计算量化表，而是直接从源文件中复制量化表。 颜色采样：如果“优先使用原JPG采样参数”被选中，则优先从源文件中读取色度分量（Cb、Cr）的采样系数，否则如果“方式”为“自动”，则仅当JPG质量小于90时才对色度分量进行子采样（sub-sampling，其实就是缩 水），大于等于90时不进行子采样；89～70时如果图像宽度大于高度则水平方向缩一半，否则垂直方向缩一半；低于70时双向均缩一半。如果“方式”为“手动”，则按照“水平方向缩一半”、“垂直方向缩一半”选项的设置色度分量的采样系数。 提示：子采样可以减小文件长度，但会丢失部分色彩信息。 编码：如果“优先使用原JPG编码参数”选项被选中，则自动按照源JPG文件中的参数决定是否采样渐进（progressive）编码或优化（optimize）编码，否则按照“渐进式”、“优化编码”选项所选定的进行编码。 编码选项只影响JPG文件长度，对质量没有影响。 提示：优化编码需要进行双遍扫描，因此虽然可以在质量不变的情况下减小JPG文件长度，但生成JPG文件的时间会略长。渐进式编码通常也可以在质量不变的情况下减小JPG文件长度，但由于渐进式编码已经超出了JPEG标准中的基本（baseline）要求，因此某些实现得比较简陋的JPG解码器可能解不开，不过这种情况我还没遇到过。另外如果选中了“渐进式”，则内部自动采用优化编码，不论是否选中“优化编码”选项。 提示：如果“优先使用原JPG质量系数”、“优先使用原JPG采样参数”、“优先使用原JPG编码参数”三个选项均被选中，则转存后的JPG文件与源JPG文件相比，文件长度、质量基本保持不变。 9. JP2压缩 即JP2文件的压缩率，范围0～100，可以用该值定量控制生成的JP2文件的大小： 最终JP2文件字节数 ≈ 图像像素宽度×图像像素高度×JP2压缩率÷100 当然天下没有白吃的午餐，文件越小，质量越差。不过即使压缩率为100%，也不是无损压缩。 10. 切边 从4.00版开始，“切边”包含了排版功能，因此成为本软件最复杂的一个界面 ，所以在界面上特意放了一个“帮助”按钮——亲，这可是免费周到的贴心服务哦！ 排版的概念是这样的：整个页面首先是白纸一张，然后页面按照页边距往内收缩，就是版心。把内容框灌进版心，就完成了排版。当然这个“灌”包括了对齐、缩放/裁剪等过程。所以，首先是要得到包含全部有效内容但不含白边的内容框，然后再设置页面尺寸、边距、对齐方式等，剩下的就由软件搞定。 界面中的左侧选区是针对内容框选取的： 首先选择是否需要自动纠斜，因为带倾斜的页面会干扰后续的自动选择内容框的准确性。 在自动纠斜中判断页面倾斜角度时，是按照带行间距的文本行判断的，因此 需要按照文本是横排还是竖排来选择。如果横、竖排的文本都有，可以考虑“双向”，但双向需要在横、竖两个方向上找倾斜角，因此花的时间会更多一些。 如果页面中包含大量插图，导致角度判断出现失真，可以选择“清除黑区”试试看。当然这个选项也是需要消耗处理时间的。 自动纠斜范围±5°。纠斜时需旋转图像，旋转产生的模糊可用“锐化”补偿。 纠斜的结果是对图像纠斜旋转，这样就会对称的角点方向留下空白，即右侧预览图中的黑色边框，对空白的处理方式： ·边缘保留：用原图中的内容填充空白。如果原图在空白处正好有内容，就会有残留。 ·边缘填白：用“填白所用色”填充空白。 ·边缘扩展：用原图像边缘处像素扩展填充空白。如果边缘处正好有黑点，可能扩展出黑线。 其次是选择内容框。处理扫描版电子书很有名的软件ScanTailor也有内容框全自动选择功能，但常常会把页码等较小的区域给切掉，因此本软件采用了人工选择与自动选择相结合的方式：先用鼠标拖动右侧预览图中的8个黑点，手工选择一个大致的范围，然后再在这个范围内自动选择。自动选择选项： 1、不计黑边：与上、下、左、右四条边相联通的黑色区域都算黑边，自动纠斜后也会因为旋转而产生黑边。有些书的页眉、页脚贯通到页边界，可能会被误切，这时就不宜用自动选择。 2、忽略斑点直径：页面上如果有斑点，会造成内容区的误判，因此选择适当的斑点直径可以增加自动选择的准确性。但如果斑点直径选择过大，可能会把页码等小区域也误切掉。 3、斑点补偿：斑点补偿有两方面含义，一方面是担心因为斑点直径太大造成误切，因此补偿一下，另一方面是稍微留一点空白，看起来更好看一点。当然不想要也可以关闭这个选项。补偿的规则很简单：自动选择内容区后，再往外稍微扩一下选区，扩的距离就是“忽略斑点直径”指定的值。 内容一旦被误切就回不来了，因此建议点击左下角的翻页键，逐页查看一下内容框实际选择情况，避免误切。如果出现误切，建议减小“忽略斑点直径”的值。 界面中的右侧区域是针对页面与排版的： 首先是指定版心，而版心是由页面尺寸减去边距尺寸得到的。因此参数分解为页面尺寸与边距两部分。其中页面尺寸选项中包含开本尺寸，可以在书籍的版权页中看到，这个绝对是具有中国特色的东东。页面尺寸 各选择项的含义见下表，表中尺寸单位为厘米（CM）：
选项值 | 宽度 | 高度 | 建议边距
左右 | 上下
保持不变，内容框外填白 | 页面尺寸就是当前图像的大小，内容框位置由“内容框对其方式”决定：选“不变”则内容框位置不变，否则居中或左、右齐
内容框大小 | 最终页面大小就是内容框大小，无附加边距
内容框+页边空 | 最终页面大小=内容框+页边距
指定宽度 | 指定值 | 按内容框比例自动计算 | 指定值 | 指定值
指定高度 | 按内容框比例自动计算 | 指定值 | 指定值 | 指定值
指定宽、高 | 指定值 | 指定值 | 指定值 | 指定值
787×1092 正度纸（俗称） | 1/16 | 18.5 | 26.0 | 1.6 | 2.2
1/32 | 13.0 | 18.5 | 1.75 | 1.9
1/64 | 9.2 | 12.7 | 1.15 | 1.25
1/128 | 6.0 | 8.7 | 0.5 | 0.6
850×1168 大度纸 | 1/16 | 20.0 | 28.5 | 1.75 | 2.15
1/32 | 14.0 | 20.3 | 1.85 | 2
1/64 | 10.1 | 13.7 | 1.15 | 1.4
1/128 | 6.5 | 9.7 | 0.5 | 0.7
889×1194 大度纸（俗称） | 1/16 | 21.0 | 28.5 | 1.75 | 2.15
1/32 | 14.3 | 21.0 | 1.9 | 2
1/64 | 10.5 | 14.0 | 1.15 | 1.4
1/128 | 6.7 | 10.0 | 0.6 | 0.7
890×1240 A系列（之一） 900×1280 A系列（之二） | 1/16 | 20.1 | 29.7 | 1.4 | 2.25
1/32 | 14.8 | 21.0 | 1.25 | 1.5
1/64 | 10.5 | 14.4 | 1.25 | 1.4
1/128 | 6.9 | 10.0 | 0.7 | 0.7
1000×1400 B系列 | 1/32 | 16.9 | 23.9 | 1.5 | 2
1/64 | 11.9 | 16.5 | 1.5 | 1.75
1/128 | 8.2 | 11.5 | 0.7 | 1
A4公文 | 21.0 | 29.7 | 2.7 | 3.6
A5 | 14.8 | 21.0 | 指定值 | 指定值
A6 | 10.5 | 14.4 | 指定值 | 指定值
B5 | 16.9 | 23.9 | 指定值 | 指定值
B6 | 11.9 | 16.5 | 指定值 | 指定值
B7 | 8.2 | 11.5 | 指定值 | 指定值
4开报纸 | 55.0 | 39.0 | 2.00 | 2.50
8开报纸 | 27.5 | 39.0 | 2.00 | 2.50
A2(WORD 2013) | 42.0 | 59.4 | 3.18 | 2.54
A3(WORD 2013) | 29.7 | 42.0 | 3.18 | 2.54
A4(WORD 2013) | 21.0 | 29.7 | 3.18 | 2.54
注释： “填白”或“页边距”造成的空白地带，一律用“填白所用色”中指定的色彩填充，缺省是白色。 上表的页面尺寸、页边距值仅供参考。一般出版社排版时页码也不算在版心内，这点必须考虑。 另外上表仅列出常见开本尺寸，如果想知道更多畸形本尺寸，请百度《书刊开本尺寸及其版芯尺寸表》。 如果是自扫，手头有实体书，用直尺实际测量一下是最稳妥的办法。 对于A4～B7的尺寸，《GB/T 788-1999 图书和杂志开本及其幅面尺寸》规定的尺寸与《GB/T 148-1997 印刷、书写和绘图纸幅面尺寸》规定的不同，估计是裁边的问题。此处采用GB/T 788-1999的尺寸。 “A4公文”的边距按照《GB/T 9704-2012 党政机关公文格式》规定计算。 报纸尺寸按照《参考消息》测量。 标注有WORD 2013的A2、A3、A4，左右、上下边距尺寸从MS WORD 2013中取。 除了“页面尺寸”与“页边距”外，“页面大小”框中还有两个非常重要的选项： 单位：可以选择“厘米”或“像素”，这是“页面尺寸”与“页边距”的单位。 DPI：如果“单位”是“厘米”，软件内部最终要按照DPI将厘米尺寸转换成像素尺寸。另外DPI值也要保存到最终输出的图像文件中。 选定内容框、设置好页面尺寸后，就要指定内容框在版心中如何排布，选项包括： 内容框在版心内的对齐方式：如果“页面大小”选择了“保持不变，内容框外填白”，则“不变”表示内容框的位置在水平或垂直方向上不变；如果“页面大小”选择了其他值，则“不变”相当于 保持内容框左、上边界在原始页面中的位置比例。 当内容框大于版心时：“溢出”表示对内容框不做裁剪，超出版心就超出了，通常在通过“缩放”功能单独对图像进行了放大，或DPI低于实际值时会出现溢出；“缩图”表示对内容框进行缩图，以适应版心大小，缩图时自动保持纵横比例；“裁剪”表示把超出版心的部分裁掉，具体裁剪的是哪条边，要看内容框在版心中的对齐方式。例如内容框的宽度超出版心，则水平对齐方式选“居住”裁两边，选“左齐”裁右边，选“右齐”裁左边。 当内容框小于版心时：“填白”表示内容框不做额外的缩放处理，多出来的部分自动填白；“放大”表示自动将内容框放大到版心限定的区域，并保持原纵横比。“放大”的放大比例不受200%的限制，按照纸张尺寸和DPI算出来该放大多少就放大多少。 注意软件界面中会自动显示当前内容框与版心的像素尺寸，可以据此判断会不会出现溢出。 如果有必要，可以再选定填白时使用的颜色，缺省是白色。鼠标左键点击手型图标，然后按住左键拖动，可以用颜色吸管在页面中选择填白所用颜色。 11. 锐化 对于常规图像，锐化能够使模糊的图像变清晰。 其中锐化级别01～09用的是3阶卷积核，a1～a3用的是锐化效果更明显的5阶卷积核。如果觉得不够，可以在“调节”里微调“高斯锐化半径”，那个用的是更高阶的卷积核 。 从时间上说，运算量与阶数的平方成正比，即如果说3阶的卷积运算量是9，5阶的运算量就是25，9阶的运算量则是81，因此锐化级别01～09的速度是最快的，应该优先使用，实在不行再选稍慢的a1～a3，只有在真的需要强力锐化的时候再去选最慢的 高斯锐化半径。 12. 柔化 能够使锐利的边缘、锯齿变柔和，也能使散点图像还原成灰度图像。但如果原来图像就模糊，用此功能后大概就该出重影了。如果“色彩”选择了“单色”，也可以用此功能平滑笔画，其效果较“加粗”柔和。 这里使用的是3×3卷积核，如果想进行更精确的控制，可以在“调节”里微调“高斯模糊半径”，那个用的是高阶的高斯模糊，速度当然比3阶的慢。 13.调节 锐化、柔化的选项都是分级的，有时候不一定满足要求，因此增加了“调节”功能，可以更细致地调节锐化、柔化效果等效果： 高斯模糊半径：和Photoshop的高斯模糊滤镜差不多，效果比分级的“模糊”更可控，但速度稍慢。 高斯锐化半径：把高斯模糊矩阵反过来当作锐化矩阵使用，效果比分级的“锐化”更可控，效果也更强烈，但速度较慢。 速度与阶数的平方成反比，但与半径无关，因此使用时可以先把半径拉到最大，然后从最低的阶数开始选择，选定阶数后再逐渐缩小半径。 必要时可增加高斯模糊半径，平滑掉高斯模糊半径造成的边缘毛刺。 多尺度细节增强：利用3次不同半径的模糊效果加权平均，同时实现对比度增强与锐化。 自然饱和度：与Photoshop中的同名滤镜差不多，增强或减弱彩色图像的饱和度。 只不过参数的作用更强烈一点（约是PS的两倍）。该功能可用于局部饱和度增强。 饱和度的作用是使色彩更鲜艳，但常规饱和度调节是针对整个图像的，即整个图像的饱和度均按照指定的比例统一增强，但如果调节到较高数值，图像会出现色彩“过饱和”现象，造成图像失真。而“自然饱和度”在增强饱和度时会 逐像素比较各像素的R、G、B通道，只增强该像素较弱的通道，不改变较强的通道。这样在增加饱和度时，本身饱和度就高的像素不会爆掉（溢出），出现色块或整体偏色。 14.通道 “通道”功能包括颜色替换、通道互换、通道混合、自动白平衡、反白、CMYK反白。 颜色替换通常用于去除水印、底纹、彩色边框等，其替换过程是：逐一检查图像中的每一个像素，如果像素颜色满足“替换条件”，则将其替换成指定色。某些替换条件可能会用到“阀值”。各“替换条件”的含义如下： 不替换：别用“颜色替换”功能了，颜色爱咋滴就咋滴。 RGB分量与样本差小于阀值：当前像素的R、G、B分量值分别减去“替换”色的R、G、B，如果差值的绝对值都小于阀值，则将当前像素的颜色替换成指定色。 即替换与指定色相近似的颜色。 色调与样本差小于阀值：当前像素的色调值减去“替换”色的色调值，如果差值的绝对值都小于阀值，则将当前像素的颜色替换成指定色。 即替换色调与指定色相似的颜色。 RG分量差值大于阀值：当前像素的R、G分量相减，如果差值的绝对值大于阀值，则将当前像素的颜色替换成指定色。 即当红、绿色差较大时，替换颜色。 RB分量差值大于阀值：当前像素的R、B分量相减，如果差值的绝对值大于阀值，则将当前像素的颜色替换成指定色。 即当红、蓝色差较大时，替换颜色。 BG分量差值大于阀值：当前像素的B、G分量相减，如果差值的绝对值大于阀值，则将当前像素的颜色替换成指定色。 即当蓝、绿色差较大时，替换颜色。 R分量占比超过阀值：如果100*R/(R+G+B)>阀值，则将当前像素的颜色替换成指定色。即替换红色比较突出的像素。 G分量占比超过阀值：如果100*G/(R+G+B)>阀值，则将当前像素的颜色替换成指定色。即替换绿色比较突出的像素。 B分量占比超过阀值：如果100*B/(R+G+B)>阀值，则将当前像素的颜色替换成指定色。即替换蓝色比较突出的像素。 在使用时，鼠标移动到“替换”、“成”按钮右侧的有手型图标的按钮上，按住鼠标左键并拖动鼠标，可以在屏幕上选色，下方的小框内会实时放大显示当前光标周围的图像，右侧则显示当前光标点的RGB颜色值，即选择的颜色值。 由于“颜色替换”功能需要分成几个步骤才能完成，因此不能实时查看效果，只有点“确定”按钮后才能实际起作用。 通道互换功能比较简单明了，就是对R、G、B通道进行互换。比如处理红外照片时一般习惯上要进行红、蓝替换。 通道混合：这个其实是把彩色图像转换成256级灰度图像，但又与下面要说的“色彩”功能中的灰度转换方法不同。在“色彩”中选择“256级灰度”时，是按照经典的心理学模型转换公式： Y´ = 0.299 * R´ + 0.587 * G´ + 0.114 * B´ 而在“通道混合”中，则采用了不同的方法： 红：取原彩色图中的红色通道成为新的灰度图。 绿：取原彩色图中的绿色通道成为新的灰度图。 蓝：取原彩色图中的蓝色通道成为新的灰度图。 (红+蓝)/2：取原彩色图中的红色、蓝色通道的平均值成为新的灰度图。 (红+绿)/2：取原彩色图中的红色、绿色通道的平均值成为新的灰度图。 (绿+蓝)/2：取原彩色图中的红色、蓝色通道的平均值成为新的灰度图。 色调：将原RGB色彩空间转换成HSL色彩空间，然后取H通道成为新的灰度图。 饱和度：将原RGB色彩空间转换成HSL色彩空间，然后取S通道成为新的灰度图。 亮度：将原RGB色彩空间转换成HSL色彩空间，然后取L通道成为新的灰度图。 对比度：将RGB转换成256级灰度，但保持原色彩间的对比度。 灰度：按照经典的心理学模型转换公式转换。 (红+绿+蓝)/3：取原彩色图中的红色、绿色、蓝色通道的平均值成为新的灰度图。 简单点说，前6种相当于Photoshop中“通道混合”功能的粗暴简化，“亮度”相当于Photoshop中的“去色”，“对比度”在Photoshop中没有对应功能，但有时候是真好使。 如果实在搞不清“通道混合”的功用，就还是老老实实用“色彩”吧，“色彩”的转换效果实在不满意了再逐一选择“通道混合”中的各值，实际看一下究竟哪个更好一点。 自动白平衡用于矫正偏色，包括因为纸张陈旧造成的偏黄、光线不足或拍照的手机太便宜造成的偏红或偏蓝等。“白点矫正”自动选择图像上最亮的区域，并试图以此区域为白色参照，对全图进行矫正。矫正后原最亮的区域成为白色，其他区域等比例增亮，结果可能造成整个图像偏白。如果觉得太白以致缺乏对比度，可以选择“白点+黑点”矫正，即先进行白点矫正，然后自动寻找图像上最暗的区域，以此区域为黑色参照，对全图进行矫正，把发白的图像再拉回来，但已经矫正成白色的区域不变。 因为矫正的标准是图像的最亮区与最暗区，所以如果图像整体存在照度不均匀现象，务必先进行照度修正，再进行白平衡矫正。 如果白点矫正失败，会自动改成调用“自动色阶1”，这个也具有一定的偏色矫正能力。 “反白”比较简单，就是把颜色反相，如把黑底白字变成白底黑字，或把白底黑字反成黑底白字。 “CMYK JPEG反白”专门用于处理CMYK色彩空间的JPG文件，对其他文件无效。如果您打开某个JPG文件后发现文件显示的颜色不对，而右下角提示的文件色深是32位，则可以试试看勾选这个选项。 15. 色彩 通常使用本软件的目的，就是希望能够将扫描图像处理得更“黑白分明”，即去掉多余的纸张颜色、背景、底纹、光照阴影等，同时将有用的文字、图像部分变得更清晰、悦目。换句话说，处理后的颜色或灰度级别可能就没有原来那么多了，适当减少存盘图像的颜色数可以有效减小最终文件长度。 另外有些手持设备由于条件限制，只能支持256色或16级灰度，这时也需要减色，而且常常需要结合采用抖动，以保持图像效果。 注意：为了简化图像处理算法的实现过程（说白一点是为了偷懒），本软件在读取图像时，如果发现是调色板图像，会自动检查调色板，如果发现是彩色图，则一律转换成24位真彩图，否则转换成256级灰度图，即在本软件内部只需针对24位真彩、256级灰度两种图像进行处理。因此在处理完后存盘时，如果不对颜色数进行限制，可能会出现文件膨胀。举个例子：黑白文字页面的大图PDG其实是16级灰度的PNG，如果在用“颜色替换”功能去除水印后，按照缺省的“保持原样”存为PNG，会按照256级灰度保存，结果造成文件膨胀，而改成“16级灰度”后再存为PNG就与原来 文件长度差不多了——差异还是有的，毕竟把水印去掉了。 “色彩”界面分成上、下两个部分，上部分选项是通用选项，包括： 色彩数：指定输出图像中的色彩，允许的选择包括： 保持原样：如果原图是彩色图（24位图或调色板彩图），则存为24位真彩，否则存为256级灰度。 24位色：和“保持原样”的效果一样。换句话说，如果原图就是灰度的，选了这个选项也存不了24位色。 256级灰度：强制将所有图像转换成256级灰度图像，彩色图像按照心理学模型转换。 128级灰度、64级灰度、32级灰度、16级灰度、8级灰度、4级灰度、纯黑白：强制对所有图像进行减色，减成要求的灰度级别。彩色图像先按照心理学模型转换成256级灰度，然后再减色。如果对心理学模型的转换效果不满意，可以试试“通道混合”。 256色、128色、64色、32色、16色、8色、4色、2色：强制将彩色图像减色到要求的色彩数。对于灰度图像，相当于减色到要求的灰度级别。 16位色565、16位色555：通常用于将24位真彩色减成16位高彩色。分别对应R5G6B5和1XR5G5B5两种。16位色只能存为BMP文件。 调色板量化算法：在减色时，最重要的事情有两个：一个是确定新的色彩有哪些，即应该用什么样的方法生成新的调色板，如将24位色减为256色时，究竟应该选哪些色构成这256色？；另一个事情是如果原先图像中的一种颜色在新的调色板中没有，那究竟应该把它替换成哪一种新色？。第二个问题比较好解决，大家都是用欧氏距离进行判定，速度是差了点，但效果还不错。第一个问题就比较复杂了，至今已经有太多的人提出了太多的方法，但每种方法都有其长处，当然也有其短处，包打天下的方法很不幸至今尚未找到。因此在本软件中提供了几个选项让用户自己选，如果实在不知道该选哪一个，那就逐个都试一下才是明智的选择： 八叉树：这是一种四平八稳的算法，减色效果不会特别好，一般也不会特别坏，速度、内存占用也还凑合，因此是缺省的算法，也是4.00之前版本的唯一减色算法。 中位切分：一种古老的方法，某些情况下比八叉树好，某些情况下不如八叉树。 XiaoLin Wu：以该算法的提出者名字命名的算法，效果也是时好、时坏。 固定调色板：不管原始图像中的色彩是什么样的，全部减成系统内部设定的固定色。由于不需要计算新调色板，因此速度很快，但效果就听天由命了。如果要求减色后的图像都拥有相同的调色板，只能选择这种算法。 抖动：如果原先的图像存在很多过渡色或过渡灰度，减色后可能会出现类似“等高线”的色区，看起来很难看，这时可以试试抖动，即通过像素点的交错排列，减轻等高线效应。彩色、灰度图像的抖动算法是经典的Floyd Stainberg算法，纯黑白图像的抖动算法在下面选。 16级灰度以下PNG设置背景透明：如果选择了此选项，并且“色彩数”选择了16级灰度、8级灰度、4级灰度或单色，在存为PNG时会自动把白色设置为透明背景色。 载入时判断灰度图像：除非选择了“不判断”，否则在打开图像文件时，实际逐像素检查图像是否是灰度，对于假冒24位真彩的灰度图像，一律转成真正的灰度图像。如果选“容错判断”，则允许R、G、B分量之间有一定的差异；如果选“严格判断”，则只有在R、G、B分量相等时才认为该像素是灰度像素。 对“色彩数”的补充说明： 如果选择“256级灰度”选项，处理后的文件按256级灰度保存，对于黑白漫画可以减少文件长度，但对于彩色漫画就太可惜了。如果选择“24位真彩”， 则按24位真彩色格式存盘，对黑白漫画来说又太浪费。如果选择“保持原样”，则原来是256级灰度或24位真彩的，存盘后还是256级灰度或24位真彩，适用于那些封面为彩色，内容为黑白的漫画。如果画面非常干净，也可以选择“16级灰度”、“8级灰度”或“4级灰度”，并选择按PNG格式输出，可以获取最佳压缩比。对于纯文字页面，选“单色”，并选择按TIFF格式输出，可以获取最佳压缩比。 对于16级灰度、8级灰度、4级灰度或单色，本软件会自动“保白”，即强制将最“亮”的色彩置为白色。 对于纯黑边图像，存为TIFF可以获得最佳压缩比，而且是无损压缩；对于24位彩色、256级灰度图像，可以存为有损的JPG、JPEG 2000，也可以存为无损的PNG；对于其他色彩数，建议存为PNG。 “色彩”界面的下半部分是纯黑白选项，只有在“色彩数”选择了“纯黑白”的情况下才能用，可用的选项包括： 抖动算法：只有在选择了上方的“抖动”选项后才能用此选项。纯黑白图像的抖动，就是用不同密度的黑点来模拟不同的灰度。可以选择不同的抖动算法，实在不知道该选哪个就都试试： JJN：经典Floyd Stainberg算法的改进。相对于经典Floyd Stainberg算法，JJN算法更突出边界，因此对比度保持较好，而且不容易出现规则条纹。 Floyd Stainberg：看起来比JJN更柔和一些，有人比较喜欢这种效果，但容易出现规则性的条纹。 Bayer：用不同密度的预设网纹进行抖动，类似于老式报纸上照片的效果。 阀值算法：如果没有选择“抖动”，则可以选择此选项。如果不知道这些算法的含义和效果，那就都试试： 同调色板量化算法：采用上方“调色板量化算法”框所选算法，即八叉树、中位切分、XiaoLin Wu或固定调色板。 Otsu：大名鼎鼎的全局阀值算法之一，速度很快，对于照度均匀的图像效果不错。 Wolf：局部自适应阀值算法，即将整张图像按照“窗口尺寸”划分成各独立子区域，然后根据子区域中的情况，结合整张图像的统计特征，进行二值化。在整张图像照度不均匀时比较有用。 窗口尺寸：只有在“阀值算法”选择了“Wolf”时才有效。较小的窗口尺寸能适应较剧烈的照度变化，较大的窗口尺寸则适应较平缓的照度变化。 通常认为窗口尺寸至少是文字大小的1.5倍，即窗口内包含2个以上的文字是最好的。实际使用的时候我都是先增加窗口尺寸，不行再减小。 去斑直径：灰度图像变成纯黑白后，有时候会出现一些黑色斑点，看起来比较难看。此选项值为0时时不会管这些黑色斑点，大于0时则自动清除掉长、宽均小于选定值的斑点。注意选择的值不要超过文字笔画中独立点的直径，否则可能会造成笔画残缺。 去除符合下列条件的黑色区域：在某些繁体竖排书籍上，人名、书名旁边会有竖线、波浪线，这些竖线、波浪线看起来很美观，但实际上会干扰OCR的准确性。因此在OCR前可以用此功能去除。注意“宽度”与“高度”之间是“与”的关系，另外此功能与“去斑”独立，顺序是先去斑，再去除 符合条件的黑色区域。 如果想测量实际图像中线条的像素尺寸，可以先把鼠标移动到图像区域，按住Shift键，晃晃鼠标，直到鼠标光标变成十字，然后在需要测量的区域左上角点一下鼠标左键，再到右下角点一下鼠标左键，就会弹出对话框，报告两次点击的坐标，及其所围成区域的长度、宽度。注意在点鼠标的过程中要一致保持Shift键被按住，出现对话框后才能松开。 去除与边缘接触的黑色区域。有时候即使经过裁边、去斑，在边缘地带还是会有一些黑色区域，这时可以用此选项去除。此选项不管黑色区域的大小，只要与上、下、左、右四条边有接触，就删除之。因为效果太猛了，而且查找要去除的区域也需要时间，所以缺省未选中。 边缘去毛刺。采用图像形态学的方法，按照事先设定的多种模板对二值化图像的边缘进行平滑处理，去掉突出的毛刺、填平某些凹坑。由于处理速度较慢，而且与高斯模糊的平滑效果各有千秋，所以缺省未选中。 对于纯黑白选项的补充说明： 虽然Wolf算法对照度不均匀的图像具有一定的自适应能力，但对初学者建议还是尽量选择后面要说到的照度修正、照度归一对图像进行处理，然后再用Otsu等全局化算法进行二值化。在ScanTailor中，只有“Select Content”功能用Wolf算法对图像进行二值化，然后在二值化后的图像中寻找内容框，而在最终的“Output”中，则是先对图像进行照度修正，然后用全局Otsu算法进行二值化。 原因很简单：Wolf算法的效果严重依赖于窗口尺寸的选择，不同的窗口尺寸会有不同的效果。所以对有经验的人来说，只要仔细选择窗口尺寸，Wolf算法的效果那是很好、很强大，尤其是在处理照度不均匀的图片时，效果绝对能甩其他全局阀值算法几条街。但对经验不足的初学者来说，还是选择四平八稳的算法组合更稳妥一点。 当然对于比较有追求的用户，还是应该努力熟练掌握Wolf算法的使用，这个真的很好用。 纯黑白图像的边缘部分难免有点毛刺，减轻毛刺的方法不止一种：可以用高斯模糊（半径0.5～1.0），也可以勾选“边缘去毛刺”选项。我自己更常用高斯模糊，因为这个速度更快，效果也更自然一点。 在把扫描的文字页面变成纯黑白时，建议务必先对图像进行放大。可以在“缩放”选项中进行，这个有最大200%的限制，也可以在“切边”进行，这个没有最大200%的限制。 16.照度修正 由于灯光照明或书籍弯曲的影响，整张扫描图像可能会出现明暗变化，如平板扫描时一般中缝部分较黑，用相机拍书则常常中间亮、四周暗。这种情况就是光照不均匀，或称“照度不均”，解决的办法就是照度修正，或照度归一： 照度修正：这个算法是从ScanTailor学来的，基本思路是把整张图像的像素按x、y轴排列，亮度算z轴，成为一个三维曲面，然后按最小二乘法进行曲面拟合，算出光照曲面，据此对原始图像进行修正。这种方法对线形阴影、中间亮四周暗的情况修正比较好，但对两边亮、中间暗的情况修正不好，所以在ScanTailor中一上来就要求对页面进行切分，切分后输出时再进行照度修正，否则中缝搞不定。另外这种方法只能修正光照不均，如果纸张本身有阴影，这种算法也修正不了。 照度修正+旋转：为了加快运算速度，ScanTailor的照度修正算法在横向、纵向采用不同的拟合阶数（纵向高于横向），对纵向图片是没什么问题，但对于横向图片有时会由于阶数不足而 出现修正效果不好的问题。所以对于横向图片，如果在选择“照度修正”后觉得修正效果不好，可以试试这个。 照度归一：这个其实是多尺度Retinex（MSRCR）算法，应用范围比上面的照度修正算法广，在人脸识别领域尤其流行，百度一下可以得到无穷多的相关论文、源代码，至于实际好不好使就是另外一回事了。要想理解“归一”的意思，看一下处理前后的直方图就一目了然：不论处理前的直方图是什么样，MSRCR处理后的直方图都会往正态分布曲线上靠，“归一”是中文的习惯译法，其英文原文是normolize，和“正态”是一个词。这种算法对光照不均、纸张阴影都有修正效果，但修正后往往整体图像发暗，因此在本软件中又做了一种修正： 照度归一+增亮：在光照归一的基础上，对整体图像进行增量，使最大亮度达到255。 F.M.Retinex：即Frankle-McCann retinex方法，与MSRCR不同的是采用一维变长路径，通过迭代次数控制效果。在图像较大时速度较慢。 注意： 由于照度修正与照度归一速度较慢，因此如果目测原始扫描图像不存在整体性的光照不均，或者说中缝部分的黑边可以用切边搞定，就不要选择照度修正或照度归一，以免浪费时间。 如果搞不清该用哪个算法，就逐个试一下，看看实际效果再说。 17.加粗、变细、开、闭 加粗：相当于Photoshop中的“最小值”滤镜。如果浏览的是纯文字页面（扫描电子书），并且笔画较细以至于影响阅读，可以选择“加粗”选项进行加粗。对于彩色画面，此选项会加深颜色。对于灰度图像，此选项可能会出现小灰斑。 变细：相当于Photoshop中的“最大值”滤镜。可以使笔画、线条变细。 开：先变细，再加粗。 闭：先加粗，再变细。 18. 旋转 包括左、右旋转90度，及180度旋转（颠倒）、水平镜像、垂直翻转。 19. 自动色阶/自动对比度/自动亮度/自动漂白 对于彩色图像来说，有时会由于扫描亮度设置失当而造成画面发白，或由于纸张陈旧而造成画面偏黄。对于这种偏色画面，通常可以通过色阶调整进行校正。 本软件的“自动色阶”功能与PhotoShop的同名功能在算法上一致，但是在参数上与PhotoShop的缺省参数不一样，效果要更强烈一些。通过修改PhotoShop的缺省参数，可以达到相同的效果。 PhotoShop的“色阶”功能虽然强大，但色阶是基于直方图的变换，而每一张图像的直方图都可能不同，因此对于PhotoShop来说可以用“色阶”慢慢调节每一张图像，但对于本软件这种用一套参数处理一系列图片的情况，“色阶”显然不适用，只能用“自动色阶”。 自动色阶功能由于是对三原色直方图分别进行校正，因此校正后可能会出现偏色，如偏黄的校正后偏蓝。如果不希望出现偏色，可以选择“自动对比度”。自动对比度依据灰度直方图对三通道进行等比例调整，因此不会出现偏色。 自动亮度与自动对比度差不多，使用后也不会出现偏色，但对比度扩展没有自动对比度那么大，所以如果自动对比度出现了溢出，可以试试自动亮度。 自动漂白的目的只有一个，就是尽最大可能恢复“白底黑字”，因此作用比较强烈，尤其是对于因为光线不足或纸张发黄，导致背景灰暗的灰度图像。 懒人碰到昏暗的图片时可以先试试这个，或者照度修正后再选这个。 20.表面模糊 和Photoshop里的同名功能差不多，作用是在保持文字、线条、色区边缘原有锐利程度基本不变的同时，对相似色区进行模糊，使图像更平滑。 界面上参数的含义： 遍数：指定对图像执行几次表面模糊，0表示不进行表面模糊。为了节省时间，一般建议不要用太大的半径，如果效果不满意，可以试试看增加遍数。 算法： Photoshop：与Photoshop中的“表面模糊”效果一致，算法总结见这里： http://bbs.redocn.com/thread-274838-1-1.html 导引滤波：何凯明先生提出的“引导滤波”，具体算法详见他的论文《Guided Image Filtering》。 这种算法对内存需求相当大，如果图像像素尺寸较大可能会出问题，但在内存够用的情况下速度是最快的。 选择性高斯模糊：采用了著名开源图像处理软件GIMP中的“选择性高斯模糊”（Selective Gaussian Blur），我觉得在大半径情况下高斯模糊比方框模糊更好一点。但我仅仅是用了GIMP的思想，代码是不会去抄它的，它那个太慢了。内存消耗低于导引滤波，但高于Photoshop和选择性模糊。 选择性模糊：详见下面这个博客中的介绍，内存消耗、处理效果与Photoshop的差不多，但速度比Photoshop稍快一点： http://www.cnblogs.com/Imageshop/p/4694540.html 半径：指定搜索邻域范围。 阀值：阀值对边缘模糊程度有影响。较小的阀值模糊得不是那么厉害，较大的阀值会模糊得更厉害一些。 21.USM锐化 与Photoshop中的同名功能类似。与前面“锐化”、“调节->高斯锐化半径”的区别是：锐化、高斯锐化半径对图像的每个像素都是公平的，逐个像素用3×3或5×5、7×7及以上阶数矩阵做卷积，因此在使文字、线条边缘更锐的同时，其他地方也可能会锐得出现麻点。而USM锐化一般只对文字、线条边缘有影响，对图像其他地方基本没有影响，因此现在的Photoshop教程中逐渐建议用USM锐化代替常规锐化。 我见过对USM锐化的名称、原理、历史渊源解释得最好的是： http://en.wikipedia.org/wiki/Unsharp_masking 看完之后再去看国内所谓“PS高手”的原理解释，荒谬感油然而生。 想搞懂原理的建议仔细阅读上面说的网页，才能知其然并知其所以然，当然嫌麻烦也可以先听听我的无责任简单解释： 原始图像记为A，把A复制一份记为B，在PS里相当于复制出来一个图层。 按照“半径”参数指定的半径值，对B做高斯模糊。 把模糊后的B与A逐点相减，差值的绝对值记为C。 如果C小于“阀值”的某个倍数，则说明A、B在该点上差异不大，不需要对A做什么改变。 如果C大于“阀值”的某个倍数，则说明A、B在该点上差异较大，则对A上该点像素做改变： A' = A + 数量 × C ÷100 即“数量”是一个百分数，通过它将差异反馈回原始图像。 用过高斯模糊的都知道，模糊后变化最大的是文字、线条的边缘部分，内部变化反而不大，因此USM锐化通常只对边缘起作用。 界面上的参数解释： 遍数：指定对图像执行几次USM锐化，0表示不进行USM锐化。为了避免锐化太过，一般建议不要用太大的半径、数量、阀值，如果效果不满意，可以试试看增加遍数。 数量：作用见上面的简单解释，数量越大锐化效果越明显。 半径：对蒙版进行高斯模糊的半径，适当小一点可以增加模糊效果。如果半径、数量都很大，那就没啥锐化效果，而是转变成“增加对比度”效果了，原因也很简单：在较大半径作用下，蒙版模糊得太厉害，已经没啥细节，差不多是纯色了，所以相当于对每个原始像素点增加或减少一个常量，拉伸了整体对比度。 阀值：越小越有锐的感觉，越大越没啥锐化的感觉。 注意：USM锐化效果虽然比“锐化”和“调节->高斯锐化半径”的效果可能会好一点，但速度要慢一些，因此一般建议只有在“锐化”和“调节->高斯锐化半径”不能满足要求时，才选择“USM锐化”。 22.光线 “光线”这个功能从名字上来说是从ACDSEE PRO学的，因为我经常用它的Light EQ功能处理照片。但在实现时实在搞不懂ACDSEE的专利技术，所以最终学的是Photoshop中的“阴影/高光”滤镜，效果比ACDSEE Pro的Light EQ差了好几条街，但参数比Photoshop更简单、灵活。 “阴影”指的是图像中的暗部，往右增加会增亮暗部，出现更多的暗部细节；往左减小会使暗部变得更暗，泯灭暗部细节。一般在使用对比度、Gamma校正、色阶等功能拉伸对比度后，可以用这个功能找回一点暗部细节。 “高光”指的是图像中的明亮部分，往右增加会使明亮的部分更明亮，直至溢出成纯白色；往左减小会使明亮的部分变得不那么刺眼。 23.色调均化 其实就是直方图均衡化，不过采取了措施防止出现偏色。直方图均衡化一般针对动态范围不足、看起来比较灰暗的彩色图像，但不建议用于灰度图像——灰度图像处理结果会很糟糕，甚至恐怖。 24.后处理 图像经过处理后，可能会出现发白的情况，这个时候多半是使用Gamma校正等进行修正。但Gamma校正不能保证直方图分布合理，所以增加此选项，可以使处理后的图像直方图分布更合理。 25.以上参数仅用于当前窗口 有时候为了更好地比较处理前后的效果，可以在打开图像文件后点“窗口->新建窗口”菜单，创建当前图像的副本，然后勾选“以上参数仅用于当前窗口”，这样原始窗口的处理效果就不会影响副本窗口，可以来回切换进行比较。 在批处理界面中还包含如下选项： 26.包括子文件夹 如果此选项被选中，则批处理时自动对所选文件夹及其子文件夹下的所有图像文件进行处理，并在目标文件夹下创建相同的文件夹结构；否则只处理所选文件夹下的图像文件。 2 7.复制文件日期、时间 如果选中，则结果文件与源文件具有相同的文件日期、时间；否则结果文件的日期、时间为当前系统日期、时间。 28.DPI 在目标文件中写入的DPI值。此参数的缺省值是在“切边”的“页面大小”中指定的DPI值，但如果仅仅在批处理界面中更改DPI值，不会对图像产生缩放作用，只会更改生成的图像文件中的DPI字段的值，而在“页面大小”中指定的DPI值则可能会更改图像大小。 如果想批量修改图像文件中DPI字段的值，可以选择“文件->批量设置DPI”菜单，这个也同样只是改一下图像中记录的字段值而已，不会对图像进行缩放 ，详见下面的具体说明。 图像增强参数的作用顺序： 本软件依照下列先后顺序处理每一张图片：颜色替换、通道互换、反白、通道混合、旋转、纠斜、切边、照度修正、白平衡、放大、自动色阶/自动对比度/自动亮度、 自然饱和度、高亮度、亮度、曲线调节里的强力去背景、对比度、曲线调节、Gamma校正、光线、多尺度细节增强、后处理、色调均化、加粗、柔化、调节中的高斯模糊、表面模糊、缩小、锐化、调节锐化、USM锐化、减色、 去斑、去黑区、页面排版、存盘。 如果需要批量处理的顺序与上述顺序不同，可以采用多遍处理的方法，即第一遍处理后，再进行第二遍处理，中间结果存储为无损压缩的PNG格式，以免损失。 如果想查看已经设置过的参数，或想与他人分享自己的参数设置，可以点“参数”按钮，将按照图像增强参数的作用顺序显示所有设置过的参数。 如果奇偶页需要处理的参数不同，可以将奇偶页复制到不同的文件夹，然后再处理。下面这个批处理命令将奇数页文件（文件名以1、3、5、7、9结尾）移动到odd文件夹： for %%a in (1 3 5 7 9) do move *%%a.* odd 下面这个则将偶数页文件（文件名以2、4、6、8、0结尾）移动到even文件夹： for %%a in (2 4 6 8 0) do move *%%a.* even 当然在此之前要先创建好odd、even文件夹。 存盘文件类型的选择： 对于纯黑白图像，存为TIFF可以获得最佳压缩比，而且是无损压缩； 对于24位彩色、256级灰度图像，可以存为有损的JPG，也可以存为无损的PNG； 对于其他色彩数，建议存为PNG。 如果在批处理对话框的“新文件扩展名”中选择了“自动”，则在源文件类型与当前色彩数（色深）相匹配时，优先选择与源文件类型相同，否则自动按照色彩数选择文件类型：16位色存为BMP，24位色、256级灰度存为JPG，其他存为PNG。 对各种图像文件格式的解释参见我写的《乱谈常见图像格式》。 批量设置DPI： 目前“批量设置DPI”功能允许批量设置BMP、PNG、JPG、TIFF文件的DPI，但有一些限制： BMP：这个比较简单，直接更改BITMAPINFOHEADER结构体的biXPelsPerMeter、biYPelsPerMeter字段，因此速度飞快，也不存在兼容性问题。 PNG：这个就没这么简单了，因为不是所有PNG文件都有phys段，所以采用了笨的方法：把PNG文件解码，设置DPI后重新编码、存盘。所以速度会慢一些，文件长度也可能会变化。好在PNG格式是无损压缩，无论解码、编码多少次都不会对画面造成影响。 JPEG：为了简单起见，只对JFIF格式的APP0段（FF E0）中X_density、Y_density、density_unit字段进行更改。不支持EXIF段中的DPI描述，对于没有APP0段的JPG文件也无能为力。 TIFF：只支持单页TIFF，多页TIFF只设置第一页的DPI。不支持采用JPEG压缩的TIFF文件。另外某些扫描或传真图像X、Y向DPI可能不同，用此功能 则强制设置为相同。 总之，如果需要设置的BMP、PNG、JPEG、TIFF文件都是用本软件生成的，用“批量设置DPI”功能更改DPI是没啥问题，用其他软件生成的就要看运气了。另外此功能仅仅是改变了DPI值，对图像的像素尺寸没有任何影响。 特例：如果输入的DPI是0，则BMP、JPG、TIFF都是强制置为0，PNG文件则是删除phys段。 查看直方图与统计图像颜色数： 点击工具条上的“显隐直方图”按钮，可以显示或隐藏直方图： 直方图缺省显示R、G、B、灰度共四个通道。 点击直方图上方的按钮，可以显示或隐藏对应的通道。 如果直方图的最大值与最小值差距较大，小值可能会太贴近横轴而看不出来，这时可以勾选“log”选项，把所有的数值取对数，就可以缩小差距。 点击工具条上的“颜色数”按钮，可以统计当前图像中的颜色数，及RGB通道或灰度通道的颜色统计特征量。如果图像没有经过处理，则统计值只有一组，否则有两组，一组是原始图像的颜色 统计，另一组是当前图像处理结果的颜色统计。 图像尺寸统计： 点击工具条上的“图像尺寸统计”按钮，即可对指定文件夹下的图像尺寸、DPI进行统计，报告最大值、最小值。然后可以根据所报告的统计值，批量更改图像大小，或设置统一的DPI。 图像拼接： 点击工具条上的“图像拼接”按钮，可以打开单独的窗口，实现图像拼接功能。 如果想软件运行后直接进入图像拼接界面，可以以命令行参数-merge启动本软件。 图像拼接功能包括下列要素： 需要拼接的源文件 如果源文件都在同一个文件夹里，直接选择“源文件夹1”或从资源浏览器中拖拽过来即可。如果文件分左、右页存放在不同的文件夹里，则需勾选“源文件在不同文件夹里”选项，然后选择“源文件夹1”、“源文件夹2”。 如果只希望对源文件夹中的某种文件进行操作，可以通过“源文件”选择指定的文件类型，对源文件夹中的文件进行过滤选择。 选定源文件夹和源文件类型后，先筛选出所有所有符合条件的源文件，再按照资源管理器中的文件名顺序进行排序，然后显示在左下方的源文件列表中。 如果源文件夹只有一个，则列表中的顺序就是排序后的顺序。如果源文件夹有两个，则在分别对两个文件夹中的文件进行排序后，交错出现在文件列表中。 缺省时源文件列表中的所有文件从第一个文件开始，前后两个文件拼接在一起，但也可以手工排除某些不想拼接的文件：在源文件列表中，每个文件前面有一个选择框，只有勾选的文件才参与拼接，没有勾选的文件将不与其他图像拼接，而是直接原样复制到目标文件夹。所以对于不想拼接的文件，直接用鼠标去掉文件名前面的勾选即可。 文件列表中所选中的图像会在右侧预览区显示，包括其拼接效果。鼠标点击源文件列表上方的翻页按钮，或用键盘上的PgDn、PgUp键可以翻页，Home键翻到第一页，End键翻到最末页。 如果勾选了“显示边框”选项，则在预览时会用绿色方框显示源文件的位置和大小。 拼接后的目标文件 通过“目标文件夹”选择存放目标文件的文件夹，通过“新文件扩展名”选择目标文件的格式。 如果“新文件扩展名”选择“自动”，则按照如下规则决定目标文件的类型： 如果两个源文件的类型相同，比如说都是JPG或都是PNG，则目标文件的类型与源文件相同。 否则，纯黑白保存为TIFF，24位真彩或256级灰度存为JPG，其他的存为PNG。 JPG、JPEG 2000（JP2）可以用“JPG质量”、“JP2压缩”参数控制最终文件长度。JPG可以点击“设置”按钮对质量和文件长度进行更细致的控制。 另外在存储目标文件时，自动按照处理后图像的实际色深，选择最小色深进行减色处理。 在设置DPI时，如果为0则从源文件中读取DPI，否则按照指定值设置目标文件的DPI。 拼接选项 首先，需要指定如何进行拼接，即通过“排列”选项指定两页的相对位置，包括上下排列、左右排列等。 其次，如果参与拼接的两页大小不一致，则需通过“尺寸不一致时”选项说明解决办法： 填白：两页尺寸不变，空白的部分填白。填白所用色由“填白使用色”指定。 此时由于两页尺寸不一致，因此还需要通过“对齐”选项来选择两页的对齐方式。 放大：放大尺寸较小的页面，使两页在拼接处的尺寸一致。 缩小：缩小尺寸较大的页面，使两页在拼接处的尺寸一致。 放大、缩小后不存在对齐的问题，因此“对齐”选项无效。 “对齐”选项的说明： 只有在“尺寸不一致时”选项为“填白”时，“对齐”才有意义，否则无意义。 在“排列”选项为横排（左右、右左）时，对齐选项的值依次是： 下齐、上齐、居中 在“排列”选项为竖排（上下、下上）时，对齐选项的值依次是： 左齐、右齐、居中 另外“对齐”选项还受到“扩边”选项的影响： 如果勾选了“扩边”，则“对齐”只是参考，在对齐后仍然可以平移图像，并且最终图像尺寸随着平移而变化。例如选了“居中”，并勾选了“扩边”，则确实情况下图像按照居中对齐，但用户仍然可以在自动居中后平移图像，向里移动时最终图像变小，向外移动时最终图像尺寸扩大，并对空白处进行填充。 如果没有勾选“扩边”，则严格按照“对齐”选项进行对齐，并且固定最终图像尺寸。例如选了“居中”，但没有勾选“扩边”，则图像只能沿横向（横排时）或竖向（竖排时）平移，平移是严格保持居中，平移出原图像位置的部分将被裁剪，空白处进行填充。 最终生成的目标文件的像素尺寸、色深会在源文件列表上方的显示条中显示，在选择不同选项时请注意查看该参数的变化。 因平移而产生出来的空白用“填白所用色”。 然后，还需要指定对中缝的处理： 参与拼接的页面如果没有经过“切边”处理，存在中缝阴影等，可以勾选“自动清除中缝”，然后按照“切边”处理的规定指定参数。由于切边实在是太慢，会影响到后续拼接操作的流畅性，因此建议最好在拼接前先做好切边操作，就不要到拼接的时候才切边了。 通过“中缝”选项选择是否要在两页之间插入空白。该参数的单位是像素，0表示不插入空白，其他数值则表示在拼接处插入指定像素宽度/高度的空白区域。空白区域的颜色是“填白所用色”指定的颜色。 如果需要拼接帝图像有歪斜，可以旋转图像，最多正负5度，旋转产生的空白用“填白所用色”填充。 拼接操作 如果要求不高，设定上面的参数后自动处理即可。但如果要求较高，例如需要对齐传统竖版的中缝燕尾，则还要手工进行操作，才能拼接得严丝合缝。 右上角的预览框内会显示当前鼠标光标所在位置为中心的原始图像，便于进行细致操作时查看对齐效果。 理论上说，图像的基本几何变换包括平移、缩放、错切、旋转（旋转也可以简化为几次错切）等，但为了减少操作难度和增加处理时的流畅性，本软件在拼接时只允许平移、缩放。如果图像有歪斜等缺陷，请先用“切边”中的“纠斜”处理后再来拼接。 拼接操作的平移、缩放可以有多种操作方式，适应不同人群的需求： 按钮操作。用鼠标点击“左/上页面”、“右/下页面”框中的四个平移按钮、两个缩放按钮，即可对指定页面进行平移、缩放。平移、缩放的偏移量会在对应框的下方显示。点击偏移量显示框右侧的“清除”（红叉）按钮，可以清除所有偏移量，即去除该页的平移、缩放操作效果。 鼠标操作。在需要操作的页面上点击鼠标左键，中间的红色虚线框表示该页是当前操作页。然后滚动鼠标滚轮可以缩放当前页面，鼠标拖拽可以平移当前页面。 键盘操作。W、S、A、D键平移当前页面，上、下箭头键缩放当前页面，左、右箭头键切换当前页面（带红色虚线框的页面） ，Del键删除当前页面的所有操作。 通常按钮操作的反应是最慢的；鼠标操作比较灵敏，但难以进行细致的控制；键盘操作则比较适中。 注意平移、缩放会受到前面选项的限制：如果“尺寸不一致”选择了“放大”或“缩小”，则额外的缩放操作不再有意义，平移也只允许沿页面排列方向，即横排时只能横向移动，竖排时只能竖向移动。 注意如果需要处理的文件比较多，一次处理不完，或者担心中途因为停电等原因造成工作白费，可以点击“保存”按钮保存当前参数和处理设置，下次进入后点击“调入”按钮即可选择所保存的文件进行恢复。 如果进行了拼接操作但又没有保存或开始真正合并，则在关闭窗口时会给出提示，可以按照提示进行保存或放弃。 真正开始合并 全部参数均设置完成，需要手工拼接的页面也已完成拼接操作，点击“开始合并”按钮即开始真正的合并操作，合并后的文件存储到指定的目标文件夹。 文件批量重命名： 点击工具条上的“文件批量重命名”按钮，可以打开单独的窗口，实现图像批量重命名。 如果想软件运行后直接进入文件批量重命名界面，可以以命令行参数-renamer启动本软件。 该功能可用于分开奇偶页，或处理分页文件，参见本软件使用系列教程。 本来是想学ScanKromsator在批量处理时允许指定输出文件的重命名（重新编号）规则的，但发现本软件的批处理对话框中没有办法调整文件顺序，也就没法控制编号顺序，所以只能搞出这么一个专门的重命名界面来。 选择源文件夹 源文件夹中存放的是需要批量重命名的软件。点击按钮选择，或者从资源管理器拖拽文件夹过来均可。然后会显示“源文件筛选条件”对话框，对源文件夹中需要参与重命名的文件进行筛选，生成源文件列表。筛选条件包括： 文件类型：源文件夹下哪些文件需要重命名。 筛选条件：继续在按照“文件类型”所筛选出来的文件中进行进一步的筛选。最终参与重命名的文件是同时符合文件类型、筛选条件的文件。 排序方式：筛选出来的文件在源文件列表中按照什么条件进行排序。 选择目标文件夹 选择源文件夹后，如果目标文件夹为空，则自动在源文件夹后加上后缀“_new”作为目标文件夹。可以手工输入、修改目标文件夹，也可以点击按钮选择或从资源管理器拖拽过来。 调整源文件顺序 如果需要重编号源文件，可以通过工具条上的按钮改变文件在源文件列表中的顺序，包括上移、下移、移到顶、移到底等。 指定目标文件的命名规则 包括前缀、后缀、位数、起始数字、增量等，指定后点击工具条上的“重编号目标文件”，即按照当前源文件的顺序重新编号，产生目标文件名，格式为：前缀xxxx后缀.源文件扩展名，其中xxxx是按照指定的位数、起始数字、增量产生的数字。 如果不想更改文件名，可以直接点击工具条上的“复制源文件到目标文件”按钮，直接把源文件名复制到目标文件。通常在处理PDG转出来的图像文件时，就不想重新编号，而是想保留源文件名。 开始重命名 点击“重编号目标文件”或“复制源文件到目标文件”按钮，产生目标文件列表后，即可点击“开始”按钮开始重命名。重命名过程中如果出现错误，会产生日志文件，点击工具条上的“查看日志”按钮可以打开日志文件。 图像比较： 选择“文件->图像比较”菜单项，可以打开单独的窗口，比较两个图像：有些时候图像有损、无损之类的口说无凭，不如实际比较一下。 图像比较功能包括下列要素： 源文件1、源文件2 需要比较的两个文件，源文件1在计算“相似度”时作为模板。为了计算方便，两个文件将先转换成灰度或24位色，然后再进行比较。 “比较”按钮 选择了源文件1、源文件2后，点击此按钮开始定量比较。比较结果包括： 图像差值绝对值的统计量：源文件1的像素值减去源文件2的像素值，并对结果取绝对值。计算方法：逐像素相减、取绝对值后，得到一个结果数组，然后统计这个数组的统计特征量，包括最大值、平均值、标准差。对于单通道图像（灰度图像），结果数组是个一维数组，所以统计特征量也只有一个。对于24位真彩图像，结果数组是个三维数组（R、G、B三个通道分别计算），所以统计特征量也显示3个，即各通道分别计算 ，按照R、G、B顺序排列。 均值、标准差有两组，对应不同的分母：粉色的那组是针对整个图像计算的，即两个图像中相同的像素（结果数组中值为0）也参与计数；蓝色的那组只针对不同的像素，即结果数组中的零值不参与统计。 相似度：这个其实是论文《A Universal Image Quality Index》（Z.Wang, A.C.Bovik. IEEE Signal Processing Letters, vol.9, No.3, March 2002, pp.81-84.）中提出的算法，比较两个图像的相似度。各通道分别计算、显示。结果值的范围是-1～1，越接近1说明两个图像越相像，值为1则说明两个图像完全相同。 对于图像差值绝对值的统计量，又提供以下一些可视化和数据导出工具： 直方图，即结果数组的频数统计直方图，从中可以看出图像差异值的分布。为了避免大量相同像素在直方图中把其它频数压得过低，此直方图显示时不含0点的值，即X轴的取值范围是[1, 255]。如果这样还出现“一枝独秀”的情况，可以勾选“log”选项，对频数取对数以缩小差距。 “差异图像”按钮，点击可以保存一个图像，其像素取值是两个图像差值的绝对值。打开这个图像，如果看到的是黑漆漆一片，肉眼看不出有什么内容，那么说明两个源图像的差异用肉眼基本看不出来，可以认为是“视觉相同”或“视觉无损”的。否则就是“视觉有损”，肉眼看到的部分就是差异明显的部分，而且看得越清楚差异就越明显。必要的时候可以用本软件的图像处理功能对差异图像进行处理，以看得更清楚一点。 “全图差异列表”按钮，点击后保存一个CSV文件，可以用Excel打开，彩色图包括Y、X、R、G、B列，灰度图像包括Y、X、Gray列，分别列出像素坐标值及差异图像的像素值。CSV文件可以在Excel中进行数据分析，也可以导入其它软件生成三维分布图等。 “非零差异列表”按钮，与“全图差异列表”按钮功能相似，只是生成的CSV文件中不含0值像素，即两个源文件相同处的坐标和值。 “差异分布表”按钮，点击后生成一个CSV文件，以二维表的形式列出差异图像的像素值，其中第一行是像素的水平坐标，第一列是像素的垂直坐标，中间的格子里是像素值。灰度图像只有一个通道，因此生成的CSV文件名就是用户所输入的文件名，彩色图像有3个通道，因此会生成3个文件，在用户输入的文件名后依次加_R、_G、_B后缀。 “统计频数”，点击后生成一个CSV文件，其中的数值是直方图中的频数，包括直方图中不显示的0值。用Excel打开可以看到具体数值，也可以重新生成直方图。 ## 密技曝光 一、IJG vs. IJL IJG的全称是Independent JPEG Group（独立JPEG小组），该组织以C语言源代码的形式提供应用广泛、完全免费的JPEG解码/编码函数库，编译后生成二进制格式的LIB文件，可以连接到其他编译型语言的程序中。其实对于Windows程序员来说，这个函数库最难的地方就是对编译选项的设置（Unix无此问题），一旦设置完成，编译成功，差不多就可以卖钱了。有些开发商就是将对IJG的调用封装一下，生成DLL或OCX，就开始堂而皇之地收费。由于IJG生成的代码简洁干净，无需任何DLL或OCX，很多收费的图像浏览器、编辑器等也直接或间接地基于IJG，包括Windows自身的相关API。另外在IJG的源代码中还包含对GIF、BMP、PPM、TGA、RLE文件解码/编码的实例代码，因此也有人说IJG提供的JPEG库支持这些图像格式，其实这些代码仅供IJG测试用，一般生成的LIB文件中并不包括这部分代码，如果想支持这些格式还需要在此源码基础上花功夫。 IJG最大的好处是稳定、兼容性强，毕竟经受了多年的考验。缺点是速度太慢，碰到大文件会很难受。另外在编码方面，只有IJG允许对与JPG文件长度和质量有关的参数进行最细微的控制。 IJL的全称是Intel JPEG Library，是由Intel公司提供的JEPG解码/编码库，专门针对Intel处理器进行了彻底的优化，因此在Win-tel环境下速度一流。这个工具最大的特点就是简单，一共只有六个函数（ijlInit、ijlFree、ijlRead、ijlWrite、ijlGetLibVersion、ijlErrorStr），而且随机文档中附有完整的VC++实例，因此对于VC程序员来说不用费什么脑子就可以对JPEG应用自如。 IJL有两个主要的版本：1.5版和2.0版。1.5版是最后一个免费版本的IJL，以后的版本都是收费版。而2.0则是IJL的最后一个版本，以后IJL被Intel Integrated Performance Primitives （IPP）v6.1中新推出的UIC（Unified Image Codec）所取代。 免费的IJL v1.5流传很广，但存在下列问题： 内存漏洞。这个用IJL的DLL版看不出，要用Static Lib版才能看出来：每打开一个文件，VC会报告72字节（3通道JPG）或24字节（单通道JPG）的漏洞。网上有文章说明如何用内联汇编打补丁来解决这个问题。 不支持EXIF中指定的旋转参数。这个问题不大，可以在解码后自己旋转，但需要自己再去解码EXIF。 手册上说不支持CMYK色彩空间，但自带的JPGView例子支持某些CMYK的解码，另外一些解码后色彩不正确。这个也可以修正，同样需要自己进行处理。 容错性太差。某些数据异常的JPG文件用IJG能解码，用IJL则不行。有源代码的话很容易修正，没有源代码就难了。 IJL v2.0从其他途径可以搞到，包括部分源代码。但是从我试用的情况看，除修正了内存漏洞外，其他兼容性问题依旧存在。不过毕竟有一些源代码，可以自己动手修正。另外虽然IJL v2.0的编译环境要求是VC++ 2002以上，自己建个project在VC6下编译也没有问题，花几分钟修正一下就好。 从速度上来说，在目前的主流CPU上IJL v2.0要比v1.5快，毕竟可以采用最新的处理器指令。因此从v2.53开始，本软件不再采用IJG，改用IJL v2.0解码，碰到IJL不支持的特殊JPG才调用IJG解码。但在编码方面，IJL不像IJG允许对色度的子采样（sub-sampling） 进行控制，因此本软件编码仍然用IJG。 在IPP的sample中，也给出了用IPP改造后的IJG版本，速度比原版IJG要快，但还是没有IJL快，而且兼容性很差，有些用原版IJG编码没有问题的文件，用IPP版IJG编码出来就是花的，所以我根本就不敢用。IPP中给出的经过类似改造的PNG库等也存在类似的兼容性问题，谁用谁知道。 二、ComicEnhancer vs. Photoshop 其实我个人认为，Photoshop的漫画增强效果还是不错的，但在分享转换参数方面还存在一些不足，所以我才会编这个程序。 从总体上说，ComicEnhancer模仿的是Photoshop的Batch Action功能，但支持的图像格式、图像处理方法和效果、效率可能不如Photoshop，毕竟是在业余时间里鼓捣出来的东西。 Batch Action看得见的参数不多，建立时一般是对图像操作进行录制，因此如果在BBS上撒个帖子：“我用Photoshop进行了××操作，增强了××漫画”，别人大概也是有听没有用。而ComicEnhancer的所有参数均是可见的，结果也是可重复的，因此如果在BBS上撒个帖子：“我用ComicEnhancer增强了××漫画，所用参数为××”，大家都可以受益。 Photoshop里我最欣赏的就是Curve功能，通过用样条函数表示的非线性映射，能够同时调整图像的亮度和对比度。但是这个功能的可重复性实在是太小。ComicEnhancer的所有操作都是可重复的。 最要命的一点，Photoshop实在是太大、太全了，会用它处理漫画的人好象不太多。 NOTE：以上是我早期写的总结CEP和PS差别的文字，当时我还没有接触scan_kromsator、scantailor等专门处理扫描书籍的软件，所以才会觉得用PS处理也不错。但在用过这些软件后，我才发现用PS处理扫描书籍实在是太累了： 没有自动纠斜、自动去黑边、自动去斑点、自动照度修正，处理起来很累的。 纯黑白（二值化）图像不能自动平滑轮廓，看起来好刺眼睛。 没有自动居中等排版功能，分页后很蛋疼。 …… 所以专业的事情就要找专业的工具来做，PS就是专业处理照片的，但肯定不是专业处理扫描书籍的，那属于SK、ST、CEP的范畴。 三、JPEG，BMP，GIF, TIFF and PNG 如果说JPEG是当今网上最流行的图像格式，大概不会有人反对。但由于JPEG是有损压缩，在提供较小文件长度的同时，JPEG格式也具有以下缺点： JPEG主要针对的是“自然图像”，即色彩比较丰富、颜色过渡自然的图像，如普通彩色风景照片、人物照片等。而动画、漫画、书籍等一般是“非自然图像”，即颜色跳跃比较大，并且有文字等信息，这样 经过JPEG有损压缩后，在线条、文字的边缘部分就会产生细小的碎片（高频噪声），在压缩比较大时尤其明显。这对狂热追求画质一族来说实在是个遗憾。 虽然某些人宣称“JPEG还原时无失真”，但这不过是一句广告语罢了。由于JPEG的有损压缩特性，实际上每压缩一次，都会损失一些图像信息，因此JPEG并不适合保存图像处理的中间结果。如果对以JPEG格式发行的图片进行编辑，再保存成JPEG格式，每保存一次都会造成 一定损失。减少损失（但不能完全消除损失）的办法也不是没有，具体参见我写的《ComicEnhancerPro 系列教程》 中的说明。 由于这些原因，网上有人开始尝试用无损压缩格式保存动漫图片。常见的无损压缩格式有BMP、GIF、PNG和TIFF等： 1、BMP BMP格式的特点是操作简单，基本上所有的工具都支持它，如果想自己开发图像处理程序的话，读、写BMP文件的源代码也随处可见。但BMP图像基本上是把 像素信息直接写到文件里，不进行压缩，或仅采用简单的RLE（行程编码）压缩，因此用BMP格式保存的图像文件一般都比其它格式的文件大得多，导致几乎没有谁会在网上发行BMP格式的动漫 或书籍图片。我唯一见过的一次是有人以单色BMP格式发行了一套赤松健的《永远的圣诞老人》，长度比质量系数65％的256级灰度JEPG还小，不过单色BMP不是黑就是白，没有任何过渡， 看文字书还行，漫画看起来实在是…… 2、GIF GIF大概称得上是目前网上最流行的无损压缩图像格式。我看到的第一套以GIF格式发行的漫画是英文版《乱马》，其图像之细腻绝对不是JPEG能够比拟的，而且由于采用16级灰度，图像尺寸也不大。后来陆续又见过一些以GIF格式发行的港版漫画，虽然图像都不错，不过文件尺寸上就差远了－－全是256色GIF。不过GIF也有一些问题： GIF压缩算法的核心－－Lempel-Ziv-Welch (LZW)算法是有专利权的，专利权归Unisys公司所有。开发解码程序也就算了，如果开发编码程序，就算开发的是freeware，也需要缴纳专利费，否则 可能会有麻烦。 P.S.现在这个专利已经过期了。 GIF 89标准只支持灰度和调色板图像，24位真彩图像属于非标准。ACDSEE在把其它格式的图像批量转成GIF的时候，干脆就把所有彩色图像都转成256级调色板GIF。 有鉴于此，至少我是不会在我开发的软件里支持GIF编码的，解码则直接调用CxImage，要打官司也找不到我头上。 3、PNG 对于Unisys向支持GIF格式的freeware收费的行为，网络界当然不会没有反对的声音。其中一些反对者聚集起来，提出了新的PNG格式（听起来象不象DivX和Xvid的故事？）。PNG的压缩算法采用公开的ZIP压缩算法，不仅压缩率比LZW高 （从统计学上说如此），而且不需要支付专利费用，连压缩、解压源代码都有专门的zlib组织免费提供。因此形象一点说，PNG可以理解为把BMP用ZIP压缩算法压缩一遍。 与GIF相比，PNG格式不仅文件长度更小，而且在色彩方面支持得更好，差不多达到BMP的水平。尤其是动漫图片常用的24位真彩和256级、16级、8级和4级灰度。 因此，整个“动漫DIY系列”将全面支持PNG格式。 4、TIFF TIFF可以说是一种包罗万象的图像格式，内部允许使用多种图像压缩格式，包括BMP使用的RLE、PNG使用的zip、GIF使用的lzw、JPG使用的jpeg压缩算法等。从我使用的结果来看，如果使用与其它图像格式相同的压缩算法，TIFF文件并没有什么优势。但是在压缩 纯黑白（二值化）图像时，TIFF提供的CCITT G4压缩算法比zip、lzw、RLE等具有非常明显的优势，因此本软件在保存TIFF格式时，单色图像均采用CCITT G4压缩，其它图像采用TIFF规范baseline规定的LZW压缩 以获取最大兼容性。 四、JPEG 2000 现在虽然JPEG 2000已经成为标准，但似乎标准对代码实现定义不足，导致现在出现了一些互不兼容的JPEG 2000代码。以C语言开源项目为例，目前比较有名的有kakadu software的kakadu、Michael D. Adams的JasPer、openjpeg组织提供的LibOpenJPEG。从我测试的结果看，似乎JasPer编码的兼容性更好，而openjpeg解码的兼容性更强。说得更白一点，用JasPer编码的JP2文件直接插入PDF文件不会出错，而openjpeg编码的会；从Acrobat生成的PDF文件中抽取JPEG 2000文件，用openjpeg能够解开，而JasPer解不开。kakadu的解码速度、兼容性无与伦比，但是某些图像解码后的效果不如openjpeg，而且开源版本的kakadu在处理调色板图像时可能会出现颜色不正确。 另外IPP也提供了自己的JPEG 2000编解码器，从我测试的结果看，时空效率略逊于kakadu，但因为出现得较晚，对JPEG 2000新版规范的支持强一点，尤其是在处理调色板图像方面。 在综合考虑各方因素后，本软件主要采用kakadu（32位用MMX优化，64位用纯C++）实现JPEG 2000编解码 ，碰到搞不定的再用IPP。 在JPEG 2000标准中，定义了JPEG 2000文件（以JP2为文件扩展名），和JPEG 2000编码流（code stream，以J2k、JPC为文件扩展名）。JP2包含的信息更完全，因此本软件编码时一律编码成JP2文件。解码则支持JP2、J2k和JPC。 从我使用的情况看，虽然各种论文、书籍上吹得天花乱坠，但实际测试下来JPEG 2000的效果不见得比JPEG强多少，但是编解码消耗的时间要多得多，实在不是很划算，难怪到现在也流行不起来。 ## 鸣谢 本软件的JPEG解码采用了Intel发布的IJL（Intel JPEG Library），但进行了修正，编码采用了Independent JPEG Group v6b；PNG文件的支持采用了libpng组织提供的libpng源代码（zlib采用了ASM版），TIFF文件的支持采用了libtiff组织提供的libtiff源代码，GIF文件支持采用了Davide Pizzolato的CxImage，Jpeg 2000支持采用了kakadusoftware提供的kakadu源代码，webp采用了Google的libwebp，raw采用了dcraw。 ## 附录 版本更新记录 v4.20 功能修正：在“切边”时，如果选定“不计黑边”，则在原有去页面黑边基础上，再去掉与红框相接触的黑块。有时候手动选边框时红框刚好与黑斑相交也是比较心烦的事情。 功能修正：批量转换时，先停掉任务栏上的进度条，再弹出结束提示对话框，否则老觉得没停。 错误修正：如果ICC数据错误（指针越界），可能会造成带ICC色彩校正的图像解码出问题。 v4.19 功能增强：增强JPEG 2000的兼容性。 功能修正：白平衡的白点矫正如果失败，会自动调用“自动色阶1”。 功能修正：对于二级灰度图像（非纯黑白），减色时如果选择了“2色”，则保持原有二级灰度不变，而不再是转换成纯黑白。 错误修正：所有单色灰度图像都会解码成黑白图像。 错误修正：白平衡选择“白点+黑点”时，有时候会造成图像反白。 错误修正：在win10下如果设置了高DPI，用吸管取色时会出现定位不准。 错误修正：JPEG 2000图像的色深总是显示为24，某些JPEG 2000的DPI显示不正确。 v4.18 错误修正：如果源文件与目标文件相同，JPG质量设置中的三个“优先”不起作用。 v4.17 错误修正：某些特殊尺寸的纯黑白文件存盘时会出错退出。 v4.16 新增功能：文件批量重命名。 本来是想学ScanKromsator在批量处理时允许指定输出文件的重命名（重新编号）规则的，但发现不能控制顺序，所以只能搞出这么一个专门的重命名界面来。 新增功能：如果在Win7以上系统运行，批处理时能在任务栏上显示当前进度。 新增功能：在“切边”对话框的“纠斜”框里，增加边缘选择框，设置纠斜后的边缘处理方式。 新增功能：增加“适合宽度”选项，如果图像宽度超过窗口宽度，显示时按窗口宽度缩小显示。 功能增强：Gamma校正的上限从200扩展到300，让想加黑的人加到爽。 功能增强：在“切边”对话框的“页面设置”中，增加4开、8开报纸尺寸，及按照WORD 2013设置的A2、A3、A4纸尺寸和页边距。 功能修正：如果参数与缺省值相同，则在保存参数时不保存，避免参数文件过渡膨胀。 功能修正：v4.15放弃的“光线”功能又被找了回来，不过修正了以前的偏色问题，同时调整了其作用顺序。 功能修正：对滚动条的翻页距离进行了调整。 功能修正：工具条状态的存储位置从注册表改为ini文件，工具条显示不正常时删除ini文件即可。 错误修正：某些DNG文件解码后出现偏色。 错误修正：对帮助文件中的重复描述、错别字进行了修订。 错误修正：在文件列表中漏掉了RAW文件（*.nef;*.crw;*.cr2;*.dng）。 错误修正：从本软件启动JpegQuality.exe时，如果JPG路径含空格，则启动后报告文件不存在。 错误修正：“切边”对话框中提示文字显示不全。 v4.15 新增功能：在“调节”对话框中新增“多尺度细节增强”选项。 新增功能：在批处理对话框中，“新文件扩展名”新增“自动”项。 新增功能：在“通道”对话框中增加自动白平衡选项，包括白点矫正和白点+黑点矫正。 新增功能：在自动色阶选项框中增加“自动漂白”选项。 新增功能：在“曲线”对话框中可以用参数调节对比度。 新增功能：在“照度修正”选项框中增加“F.M.Retinex”选项。 新增功能：文件删除，可以直接从工具条上选择删除当前文件。 新增功能：能够记忆窗口大小和位置。 功能增强：修改了“照度归一”，提高运行速度，减少出现亮斑的可能。 功能增强：在统计“颜色数”时顺便统计颜色的统计特征量。 功能增强：“自然饱和度”浮点计算改为定点计算，以加快速度。 功能增强：修改了导引滤波（Guided Filter）的实现，内存消耗略有降低。 功能修正：去掉了鸡肋的“光线”功能。 功能修正：重新定义锐化级别a1～a3，原“调节”中的“锐化百分比”也改成“高斯锐化半径”，核心目标都是加强锐化效果，以应对伪高清制作时大比例放大造成的模糊。 功能修正：对参数存储文件格式进行了调整，以前版本保存的参数将失效。 功能修正：“最近打开文件”等不再记录在注册表中，而是记录在ini文件中。 错误修正：批量处理某些纯黑白图像时，可能会造成出错退出。 错误修正：批处理对话框中的“色彩”与色彩设置对话框中的“色彩数”不同步。 v4.14 新增功能：在“图像拼接”中增加旋转功能。 功能增强：在“批量设置DPI”时，允许输入DPI值为0，此时相当于从文件中删除DPI值。 功能修正：右下角状态栏显示DPI时，如果原图像中没有DPI值则不显示，而不再显示CxImage缺省的96 DPI。 错误修正：某些PNG图像解码不正确。 v4.13 新增功能：图像比较，可以比较两个图像的差异。 新增功能：在“参数”和“图像拼接”界面中增加JPG质量“设置”按钮，可以对JPG压缩参数进行更细致的设置。 新增功能：在“图像拼接”界面中增加DPI设置。 新增功能：增加“后处理”选项，保证处理后的图像色彩或灰度分布合理。 新增功能：增加“参数”按钮，可以按照处理顺序显示所有选择过的参数，便于与他人分享自己的处理经验。 新增功能：在“色彩”中增加“边缘去毛刺”选项，某些情况下可以减少纯黑白图像的毛刺。 新增功能：在“色彩”中增加“载入时判断灰度图像”选项，解决v4.09强制检查造成的某些问题。 新增功能：在“照度修正”中增加“照度修正+旋转”项，解决某些横向图片修正不准确的问题。 功能增强：如果JPG文件中含ICC配置，则按ICC配置进行色彩校正。 功能增强：修正Wolf算法中的积分图部分，大幅降低内存消耗，顺便修正原积分图计算过程中数值溢出的问题。 错误修正：某些JPG文件解码不正确。 错误修正：在Win 10下以管理员权限运行后，从资源管理器不能拖拽打开文件。 错误修正：对于纠斜，竖排时可能会失灵。 v4.12 错误修正：打开某些非标准调色板的8位灰度图像后，合并、处理颜色不正确。 v4.11 错误修正：选择了切边后，“16级灰度以下PNG设置背景透明”选项失效。 v4.10 新增功能：在“表面模糊”中，允许用户选择模糊算法，并在原有3种算法基础上增加“选择性模糊”。 功能增强：修正仿Photoshop表面模糊的算法实现，加快在大半径下的执行速度。 功能修正：在“切边”界面中，“当内容框小于版心时”的缺省值从“填白”改成“放大”。 错误修正：某些特定宽度的图像存为纯黑白时会出错退出。 v4.09 新增功能：图像拼接。 新增功能：自然饱和度调节。 新增功能：自动亮度。 新增功能：支持尼康、佳能的RAW格式。尼康NEF测试过D40、D800、D7100、D750，佳能CR2测试过5D Mark II、G16，及A570+CHDK生成的DNG。其他小众品牌没有考虑的价值。 新增功能：图像尺寸统计，可以统计指定文件夹下的图像尺寸，便于对图像尺寸进行统一。 新增功能：在“色彩”中，允许减色成16位色，包括抖动。可以选择1XR5G5B5、R5G6B5两种格式。 新增功能：在切边时，可以指定填白所用色。 功能增强：支持扩展JPEG 2000格式。 功能增强：在“通道混合”中，新增两种混合方式。 功能增强：能够正确显示JPEG 2000图像的DPI，生成的JPEG 2000图像中也带DPI信息。 功能增强：在打开图像文件时，实际逐像素检查图像是否是灰度，对于假冒24位真彩的灰度图像，一律转成真正的灰度图像。 功能修正：在“通道”对话框中，通道互换、通道混合、反白、CMYK JPEG反白可以即时看到效果。 功能修正：纯黑白的阀值算法缺省值改成Otus。 功能修正：自动对比度的灰度算法从算术平均改成心理学模型。 错误修正：拖动文件夹打开时，打开的不一定是文件夹中的第一个文件。 错误修正：某些采用PackBits压缩算法并且带白边或黑边的TIFF图像解码后会错位。这个错误是由于libtiff在PackBits编、解码时不遵守《TIFF Revision 6.0》规范造成的，并且到v4.0.4 beta仍未修正，只好我自己修正。 v4.08 功能增强：增强TIFF文件的容错性。 错误修正：某些特殊尺寸的JPG文件解码、编码后底部出现白线。 错误修正：在“自动缩小”状态下，某些图像左、右旋转后会出现不能刷新的区域。 v4.07 功能修正：在“批量设置DPI”界面中，允许设置的最小DPI从80放宽到50。 错误修正：另存为JP2格式时，灰度图像不正确。 v4.06 功能增强：“另存为”时，能够根据文件原有扩展名及当前色彩自动选择新的缺省扩展名。 错误修正：自动裁边时，在某些情况下会出错退出。 v4.05 功能增强： 原“自动纠斜”功能扩展为“自动纠斜_横排”、“自动纠斜_竖排”、“自动纠斜_双向”、“手动纠斜”，以适应不同的需要。原“自动纠斜”相当于“自动纠斜_横排”。 功能增强：对于“自动纠斜_横排”、“自动纠斜_竖排”、“自动纠斜_双向”，可以选择“清除黑区”选项。 错误修正：在“切边”对话框里，在选定纸型后，忘记禁止页边空输入框了。 v4.04 继续与CMYK色彩空间的JPG做斗争。 v4.03 错误修正：在某些情况下，“自动纠斜”会导致出错退出。 v4.02 新增功能：在“通道”中增加“CMYK反白”选项，彻底解决CMYK色彩空间的JPG颜色问题。 功能增强：改进了“颜色数”算法，速度大大加快。 错误修正：在“切边”中，如果选择“垂直”了“靠上”，则上边距对位置不起作用，而是下边距起作用。 错误修正：在将24位真彩减色成16级以下灰度或单色后，如果选择了“16级灰度以下PNG设置背景透明”，则图像保存时会出错。 v4.01 错误修正：碰到空白页时，自动裁边会导致软件出错退出。 v4.00 新增功能：在“切边”对话框中加入了排版功能。 新增功能：调节，包括可以连续调节参数的高斯模糊、锐化。 新增功能：表面模糊，与Photoshop中的同名功能类似，在保持边缘的同时对图像进行平滑。 新增功能：USM锐化，与Photoshop中的同名功能类似，在保持边缘的同时对图像进行锐化。 新增功能：减色选项，可以选择减色时是否抖动、减色时使用的算法等。 新增功能：照度修正、照度归一。同时去掉与此重复的原“去阴影”选项。 新增功能：光线，模仿Photoshop的“阴影/高光”。 新增功能：“色调均化”选项。 新增功能：颜色数，对当前图像的颜色数进行统计。 新增功能：在“曲线”中，增加二次调节项。 新增功能：通道，包括通道互换、通道混合、颜色替换等。原“红蓝互换”选项与“通道互换”重复，故取消。原“反白”选项也移至通道界面。 新增功能：在“切边”界面中可以选择“纠斜”，实现自动纠斜。 新增功能：“16级灰度以下PNG设置背景透明”选项，便于制作背景透明的PDF。 新增功能：对纯黑白二值图可以设置去斑点。 新增功能：原“加粗”（即“膨胀”）增加了二档，并增加“变细（腐蚀）”、“开”、“闭”。 新增功能：直方图中加入“log”选项。 功能增强：状态条上能显示当前图像的色深（bits per pixcel）。 功能增强：“锐化”增加了a1～a3级。 功能增强：增加了“自动对比度3”。 功能增强：“柔化”增加了a1～a5级，相当于半径1.0～2.0的5×5高斯模糊。原先01～05级“柔化”矩阵也进行了修改，效果比原来的更柔和。 功能增强：图像缩放改用IPP实现，速度快了很多，不过EXE文件也大了很多。 功能增强：在状态条上显示图像DPI。 功能增强：强化“曲线”的效果，原来的效果太温柔了。 功能修正：“高亮值”下限从170降至150。 功能修正：批量设置DPI时，DPI上限放宽至8000。 功能修正：去掉了缩放算法的选择项。 功能修正：批量处理时的进度条改为按照文件数显示进度，以提高精确度。 功能修正：调整了几项图像处理功能的执行顺序。 功能修正：重写底层图像数据结构、图像读写及图像处理，使CEP、CV、UV共用同一套图像引擎。 错误修正：如果图像尺寸太大，减色成纯黑白时，会一片白。 错误修正：直方图中R、B颠倒了。 对图像处理顺序进行了调整。 对本帮助文件进行修订。 v3.11 功能增强：支持Alpha通道透明的TIFF文件。 错误修正：4通道、没通道16位色PNG识别不正确。 功能修正：对PNG文件来说，能解码出一部分的文件就不再报告解码错误。 错误修正：由于IJL的不幸疏漏，造成16位量化表的JPG文件解码不正确。 v3.10 新增功能：支持webp格式的解码。 新增功能：增加“自定义工具栏”功能，可以对工具栏按钮、文字、图标等进行调整，方便使用大屏幕的用户。 功能增强：换了一套真彩工具栏图标，支持大、中、小三种尺寸。 功能增强：在打开32位bmp文件时，强制把背景置为白色。 功能增强：“色彩”中扩展了128色、64色、32色、16色、8色、4色、2色、128级灰度、64级灰度、32级灰度。 v3.09 错误修正：某些CMYK色彩空间的JPG文件解码不正确。 v3.08 错误修正：某些PNG解码不正确。 v3.07 功能增强：更改文件名排序方式，“按文件名字母顺序”时基本与Windows资源管理器顺序相同。 功能增强：更改多文件选择对话框的实现方式，减小不必要的内存占用。 错误修正：某些alpha通道透明PNG文件解码异常。 错误修正：某些CMYK色彩空间的JPG文件解码异常。 v3.06 新增功能：“切边”对话框中支持用快捷键翻页。 新增功能：在状态条上显示图像像素尺寸。 功能增强：支持某些非标准BMP图像。 错误修正：如果选择了“自动缩小”，“保存”或“另存为”存出来的图像只有当前可见区大小。 v3.05 新增功能：增加直方图显示，便于在处理时查看处理是否过头。 v3.04 错误修正：不关闭批量处理对话框，直接退出会出错。 v3.03 错误修正：某些图像减色为单色时会出错退出。 v3.02 继续消除单色图像右侧的黑色竖线。 v3.01 错误修正：某些单色图像右侧可能出现黑色竖线。 v3.00 新增功能：在“参数”中新增“JP2压缩”项，用于定量控制生成的JPEG 2000文件大小，详见使用说明。 新增功能：在“参数”中增加“反白”选项，以支持手持阅读，详见使用说明。 新增功能：在“批量转换”对话框中增加“查看日志”按钮，便于查看错误日志。 新增功能：批量处理界面支持文件夹、文件拖放，允许编辑源文件夹、目标文件夹。 功能增强：允许通过拖拽文件夹打开文件，以前只允许拖拽文件。 功能增强：优化“减色”算法，以加快速度。 功能增强：JPEG 2000编码器不再采用jasper，改用kakadu，以提高兼容性和编码效率。 错误修正：某些JPEG 2000调色板图像解码不准确。 错误修正：英文版下有时“曲线”会出错退出。 更改英文版界面字体。 改为发行Unicode版，取消ANSI版的发行。 对使用说明进行了修订。 v2.57 新增功能：支持从资源管理器中拖拽文件。 功能增强：修正“单色”算法。 功能修正：对JPG解码前先做填白处理，避免因为解码失败而出现随机颜色。 错误修正：某些JPG中的EXIF旋转标识识别错误。 v2.56 新增功能：在“批量转换”界面中，可以指定目标文件的DPI，缺省为300DPI，详见使用说明。 新增功能：“批量设置DPI”，可以批量设置BMP、PNG、JPG、TIFF文件的DPI，详见使用说明。 错误修正：IJL不能正确解码某些含JFXX段的JPG文件。 v2.55 zlib、IJG代码恢复原始版本，与IPP版说再见，以避免层出不穷的兼容性问题。 v2.54 功能增强：对含无效字符的文件路径能够给出提示。 错误修正：切边预览窗口显示的文件不正确。 v2.53 功能增强：JPEG 2000解码改用Kakadu，以加快速度。 功能增强：JPEG编解码改用经过修正的IJL 2.0，以加快速度。 功能增强：zlib、IJG代码改用IPP优化版，以加快速度。 功能增强：在批量处理界面中，选择源文件夹后，自动设置目标文件夹与源文件夹一致。 错误修正：在批量处理时，如果元文件夹与目标文件夹相同，可能会对新生成的结果文件再处理。 错误修正：在Win7下，“打开文件”对话框如果选择了“预览”，初始文件无预览。 v2.52 新增功能：“图像增强参数”中增加“红蓝互换”选项，用于处理红外照片等特殊图像。 错误修正：黑白图像选“自动色阶”后变色。 错误修正：某些Old-style JPEG压缩的TIFF文件显示有错。 v2.51 新增功能：“图像增强参数”中增加“加粗”选项，用于加粗较细的文字笔画。 功能修正：在bicubic算法中改用锐化参数，并设置bicubic为缺省放大算法。 错误修正：批量处理时，如果“色彩”选择“黑白漫画”，“新文件扩展名”选BMP，则彩色图像不会被转换成灰度图像。 错误修正：某些CMYK色彩空间的JPG文件显示不正确。 错误修正：缩图时，最下或最上一条扫描线可能不正确。 v2.50 新增功能：图像旋转，包括左旋、右旋90度，及180度旋转。 新增功能：在批量转换对话框中，选择目标文件夹时可以新建文件夹。 功能调整：状态条上的窗口切换控件更改成UnicornViewer所用控件。 v2.49 新增功能：“图像增强参数”中增加“自动色阶/自动对比度”选项，对发白、发黄的彩色页面有效果。 新增功能：在“切边”中，增加“填白”选项。如果该选项被选中，则本该被裁剪的部分不再裁剪，而是用白色填充。 功能修正：引入UnicornViewer的“切边”界面，不再按像素裁切，而是按百分比裁切。 功能修正：“高亮度”处理顺序提前，便于去掉水印。 错误修正：打开某些JPEG 2000图像时出错退出。 错误修正：选择“切边”之后再选择“自动缩小”，画面显示比例不正确。 错误修正：在选择“自动缩小”后，调节参数时图像会自动恢复原大小。 v2.48 错误修正：某些CMYK色彩空间的JPG文件打开后色彩显示不正常。 错误修正：大比例缩图时可能会出错退出。 v2.47 功能增强：LibOpenJPEG升级至v1.3，jpeg 2000解码速度有所提高。 功能增强：“柔化”级别从2级增加至5级，方便在“单色”模式下去斑。 错误修正：不能打开某些采用JPEG压缩的TIFF文件。 v2.46 新增功能：批量处理时新增“复制文件日期、时间”选项，如果选中，则结果文件与源文件具有相同的文件日期、时间。 功能修正：透明背景PNG的背景色强制设置为白色。 功能修正：对于纯粹由数字构成的文件名，即使在“文件显示顺序”中选择了“按文件名字母顺序”（缺省），也会按照数字的实际值进行排序，避免10.jpg排到2.jpg前面。 v2.45 错误修正：某些CMYK色彩空间的JPG文件显示不正确。 错误修正：大比例缩图时，会出现亮线。 v2.44 功能增强：改写镜像、翻转、旋转90度的代码，以提高速度。 错误修正：某些CMYK色彩空间的JPG文件显示不正确。 v2.43 新增功能：为主窗口添加LOGO。 新增功能：鼠标双击主窗口空白区（黑色背景区），相当于点击“文件->打开”菜单。 错误修正：某些图像减色至4级灰度时会出错。 v2.42 功能修正：另存为TIFF时，除黑白图像采用CCITT G4压缩外，其他所有图像均采用LZW压缩，以获取最大兼容性。 功能修正：透明背景GIF的背景色强制设置为白色，不再用GIF本身的背景色。 v2.41 错误修正：缩小显示图像时可能会出错退出。 v2.40 新增功能：支持按照JPEG格式中的EXIF信息，自动对图像进行旋转。某些数码相机喜欢这个。 新增功能：“文件显示顺序”增加“按文件末尾数字”排序选项。 错误修正：碰到某些破损GIF文件会出错退出。 v2.39 错误修正：在放大某些图像时，会出错退出。 v2.38 兼容某些JPEG压缩的TIFF文件。 v2.37 功能增强：在选择“8级灰度”、“4级灰度”时，背景色强制置为白色。 v2.36 功能增强：支持某些特殊格式的TIFF文件。 错误修正：如果图像文件正在被某些软件打开，则不能正常读取该文件。 v 2.35 错误修正：某些大图缩小时，会出错退出。 v2.34 功能增强：支持某些特殊格式的TIFF文件。 v2.33 功能增强：支持CMYK色彩空间的JPG图像。 v2.32 功能增强：支持某些柯达扫描仪生成的OJPEG TIFF图像。 v2.31 新增功能：支持jpeg 2000，包括jp2、j2k和jpc文件。 错误修正：在打开某些CCITT G4压缩的TIFF图像时，会出现缓冲区溢出错误。 v 2.30 功能增强：支持上一版本未能支持的非标准OJPEG格式TIFF文件，怪文件还真是层出不穷。 功能增强：对于长、宽DPI不相等的TIFF文件，能够自动调整长宽比。 v 2.29 1、功能增强：继续加强对非标准OJPEG格式TIFF文件的支持，但是有些文件还是无法解码，只能保证软件不会异常退出。 2、功能增强：允许文件存储为TIFF格式，并且支持全部颜色选项（上一版本只能存储单色TIFF）。单色图像采用CCITTFAX4（G4）压缩，真彩图像采用JPEG压缩，其它图像采用LZW压缩。 v 2.28 新增功能：模仿Excel，在状态条上显示当前窗口列表。 新增功能：在状态条上显示当前文件序号/当前文件夹中的文件数。 新增功能：工具条。其实最初的版本是有的，后来由于与某些Windows 95环境冲突，所以删了，现在重新恢复。 新增功能：在“色彩”选项中，可以设定将24位真彩色减色为256色。 新增功能：减色后的图像允许存为BMP、TIFF格式。 功能增强：减色功能升级到CxImage 5.99c所带的源代码。 功能增强：在批量减色时，如果选择了“不处理彩色图像文件”，则根据图像的实际内容而不是文件格式判断图像是否为彩色图像。 功能增强：zlib升级为1.2.3，以避免潜在的安全风险。 功能增强：除了按文件扩展名外，还按文件头识别图像文件格式。 功能增强：GIF解码器换成了cximage提供的解码器，虽然速度差了点，不过容错能力比原来的强。 功能增强：在“文件->打开”对话框中，可以选择是否打开预览功能（缺省不打开）。 功能增强：对libtiff源代码进行修正，以更好地支持OJPEG格式的TIFF文件。由于历史的和技术的原因，国内很多扫描外包公司提供的彩色TIFF影像文件都是非标准的OJPEG格式（没有核心技术的悲哀！）。由于地址错位，Photoshop、ACDSee等正宗图像处理软件都会将这些文件当作已损坏的文件加以拒绝，俺实在是被逼无奈，才会捏着鼻子去支持这些垃圾格式。 v2.27 功能增强：改进“打开文件”对话框的图像预览效果。 功能增强：加快用箭头键移动图像的速度，代价是图像移动不是那么平滑。 错误修正：在1280*1024分辨率下，用鼠标拖动很大的图像时，图像会乱跑。 错误修正：在“参数”对话框中，先选中“Jpg质量”后再切换到“缩放”，会出现“缩放”项中的最大值变为100（滑动条处于最右端）。感谢樊云军的指正。 v2.26 1、功能增强：减色功能升级到CxImage 5.80所带的源代码。 2、功能增强：缩小图像时，允许指定缩小算法。以前缩小时一律使用bilinear算法。 3、功能增强：在将彩色图像转换成灰度图像时，灰度计算公式从G = (R + G + B) / 3改成G = (54 * R + 183 * G + 19 * B) / 256，与libpng采用的公式相同。 4、功能增强：读取BMP文件时，能够处理BI_RLE8、BI_RLE4、BI_BITFIELDS格式的图像。 5、功能增强：“打开文件”对话框升级到ComicsViewer 1.20带图像预览的对话框。 6、功能增强：“打开目录”对话框升级到ComicsViewer的树型目录对话框。 7、功能增强：libtiff升级到v3.7.1，libpng升级到v1.2.8，zlib升级到v1.2.2。并且zlib使用的是ASM版（其实只有两个文件是ASM的）。虽然没有确凿的测试数据，不过我相信png文件的编/解码速度会快一点。 8、功能增强：简体中文版对话框的字体全部修改成宋体9。 v2.25 新增功能：缩放的时候，可以选择放大算法：bilinear、bicubic和nearest，分别适应于中档、高档、低档机，当然放大后的效果也不一样。 v2.24 功能修正：png格式的压缩率从Z_BEST_COMPRESSION改成Z_DEFAULT_COMPRESSION，牺牲了一点文件长度，但是速度加快许多。 v2.23 错误修正：批量处理时源文件不能包含TIFF、WMF。 v2.22 新增功能：支持读取TIFF、WMF格式的文件，但是不能输出这两种格式。 功能修正：透明GIF文件的背景色改为窗口背景色，而不是黑色，以符合习惯。 v2.21 功能修正：色彩的缺省选项从“黑白漫画”修改为“保持原样”。 v2.20 1、新增功能：可以将彩色和256级灰度图像降低到16级、8级、4级灰度或单色。 2、新增功能：支持16级、8级、4级灰度和单色效果预览。 3、新增功能：PNG格式支持16级、8级、4级灰度和单色图像的输出。 v2.19 1、新增功能：支持PNG格式。读取的时候可以读取所有色彩模式的PNG，输出的时候只能输出24位真彩和256级灰度的PNG。 2、新增功能：切边。可以批量处理，切边参数可以保存。 3、功能修正：页面浏览的快捷键改为与ComicsViewer相同。 v2.18 为了更好地处理动画截图，对图像增强进行如下调整： a. 锐化操作在操作流中的顺序提前。 b. 锐化参数增加到9级。 v2.17 增强线程安全性。 v2.16 同步发行英文版。 v2.15 除JPG文件外，输入格式增加对UFO、GIF、BMP的支持，输出格式增加对BMP的支持。现在本程序也可以当作文件格式转换工具使用了。 v2.14 将“参数”对话框的标签由一行改为两行，避免用箭头按钮进行切换。 v2.13 1. 对“批量转换”界面进行了调整。 2. 窗口背景色改为黑色。 3. 增加了错误记录文件访问的鲁棒性。 v2.12 1. 新增“自动播放”功能：从当前文件开始，顺序显示同一目录下的后续文件。文件显示顺序同浏览顺序。自动播放间隔通过“自动播放设置”功能进行设置。 2. 对用箭头键操纵的大图像滚动算法进行了改进：采用多媒体专用的高精度定时器（精度到1ms），对时间进行精确定位，保证在高、低速机器上均能得到平滑的滚动效果。测试平台包括：在赛扬300A/128MB上跑的Windows Me、Windows NT Server 4.06，在PIII 1G/256MB上跑的Windows 98 SE2、Windows 2000 Server。 v2.11 1. 新增鼠标浏览功能：除了普通的按住左键拖动大图外，还支持鼠标翻页（双击左键下翻，按住左键单击右键则上翻）。 2. 增加文件监测功能：当目录中的文件发生变化（添加、删除、更名）时，自动刷新文件缓冲，翻页时就能浏览到更新后的文件。但是继续保留2.10版加上去的“刷新目录”菜单，原因很简单：为了保证在不同的平台上都能运行，程序中使用了通用监测函数，而没有采用NT专用函数，这样如果打开的是网路驱动器上的文件，自动监测功能可能不太可靠，还要手动刷新。浏览本机图像则不存在这种问题。 v2.10 继续从ComicsViewer引进idea和s/c： 1. 仿照Photoshop的Curve功能，增加了“曲线”（专业术语应该叫“对比度延展”）功能。不过可能是因为我在曲线生成方面偷了点懒，效果不如Photoshop明显，但也有长处：(1).参数化曲线，结果可重复；(2).预设多种模式，便于初学者上手，也便于学习Photoshop的Curve功能。 2. 仿照IE中的“后退”和“前进”功能，增加了“前一页”和“后一页”功能。这样在浏览时就不用担心无意中碰到Home或End键了：只要敲一下退格键（BackSpace）或选“查看->前一页”菜单即可返回原页面。 3. 增加“全屏浏览”和“自动缩小到窗口大小”功能。其中“全屏浏览”的效果看起来有点土，但MFC只能做到这一步，我又懒得用DirectX，所以就这样了。 4. 增加“刷新目录”功能。如果当前窗口所显示文件的目录中有文件加入或删除，选择此功能后就能正确地用PgDn和PgUp键浏览变化后的文件。其实对用户来讲这个功能应该是多余的，好的程序应该能够自动检测到目录所发生的变化。请期待以后的升级吧。 5. 增加关键性的条件判断，在读取图像文件失败后不会再出现保护性错误。 以现在的浏览功能来看，ComicEnhancer Pro已经差不多可以用来看漫画了，并且和其它图像浏览器相比具有独到的特点： 1. 可以随时根据漫画质量和当前显示器设置对图像进行增强，保证最佳视觉效果，同时图像文件本身保持不变。 2. 可以在一个主窗口下同时浏览多个文件，或同一文件的多个备份，便于比较。不过每打开一个图像窗口均需消耗大量内存，因此在低于128MB内存的机器上不提倡同时打开4个以上的窗口。基本上当你听到硬盘狂响不止时就是物理内存不足了。 v2.02 从ComicsViewer引进了新的idea和s/c： 1. 增加了基本图像浏览功能：打开某个文件后，用PgDn、PgUp、Home、End键可以在同一个窗口中打开同级目录下的其它文件。文件的浏览顺序通过“查看->文件显示顺序”菜单项进行设置。 2. 经高人指点，对mask滤波算法内核进行了优化。受其影响，放大、锐化、柔化操作速度均有提高。 3. 对用鼠标、键盘操作的图像滚动进行了更改，使滚动过程更平滑。 4. 修正了一个bug：参数栏中的“尺寸缩放”不等于100，“以上参数仅适用于当前窗口”项也未选中，但是新打开的窗口仍然按100％显示。 5. 为“参数”栏增加了快捷键：Ctrl+P和Ctrl+A，以方便左撇子和右撇子。 v2.01 修正了v2.0中的一个bug：在进行“成批转换”时，只有“属性”对话框中的参数起作用，“批量漫画增强”（原ComicEnhancer界面）中的参数不起作用。 v2.0 推出了众望所归的“预览”功能，而且是： 1. 全尺寸“所见即所得”的预览效果； 2. 真正MDI的预览界面，可以同时预览多个文件，或打开同一文件的多个窗口（窗口上限受内存、CPU速度等限制，建议不超过10个）； 3. 预览时可以指定参数的作用范围，可以单页调节/保存，也可以成批调节/保存； 4. 通过预览确定参数后，选择“文件->成批转换”菜单即可调出原ComicEnhancer界面，对成批图像文件进行处理。 由于用户界面、功能等改动较大，因此软件版本号升级为整数，软件名称也由ComicEnhancer更改为ComicEnhancer Pro。 v1.24 原来的“转换”按钮更改为“全部转换”，即对源目录下的所有文件进行转换，适用于参数已确定的情况；新增“选择转换”按钮，允许对选定的（多个）文件进行转换，适用于参数尝试、调整阶段。 v1.23b 为了与Mpeg2Jpeg相配合，对放大时的平滑算法进行了调整。此调整对黑白漫画几乎没有什么影响。 如果图像放大后在边线、文字附近出现碎片，可以通过“柔化”进行过滤，也可以通过增加亮度、对比度加以消除，不过亮度上去后可能需要进行Gamma校正，否则会太刺眼。 v1.23a (1).原有“锐化”功能的效果太显著了，增加两档较弱的效果，便于实用。 (2).将“黑白漫画”选项由复选项改成列表项，更加直观、方便，选项也增加到彩色漫画、黑白漫画、保持原样三个。 (3).增加目录选择对话框的尺寸，方便浏览。 v1.22 (1).对亮度、高亮度、对比度、Gamma校正算法进行了最彻底的优化，速度接近理论极限值，大概用于实时处理都够了。 (2).由于Gamma校正的查表由二维表改为一维表，表格所占内存减少为原来的1/80，“输入值圆整为5的倍数”这项内部限制也被取消。 (3).全部重写了JPEG访问接口。以前的访问接口其实是copy来的，经过了层层封装，使用起来很方便，可是中间环节太多，影响效率。新的接口去掉了所有不必要的中间环节，直接对IJG的JPEGLIB进行操作，缓冲切换也减至最小。但是毕竟是文件操作，还有复杂的编码/解码过程，所以速度改进有限。不过光是其中的错误处理一项就让我头昏了一下午。 (4).对尺寸缩放、锐化、柔化进行了微小改进，速度提高不很明显。这些功能的核心算法是各种高/低通滤波，能到这种程度已经让我偷笑了。幸好这三个功能也不常用。 v1.21 将Gamma校正的算法由硬碰硬的幂运算改成了查表，速度终于优化到可以用于大尺寸图像的地步。 v1.20 (1).应公众要求，破例将界面由英文转为中文，如果使用的不是简体中文Windows，需要外挂NJStar。 (2).增加了一批图像新功能：Gamma校正、尺寸缩放、锐化、柔化。 (3).增加了设置管理功能：保存、调入、恢复。 (4).增加停止功能：在开始转换后，用户如果愿意可以中断当前正在进行的转换。 (5).Logo图像由静态变成动态。当时手头一时找不到合适的动画制作软件，临时现编了一个的说。 (6).更正了一个错误：如果目标目录在源目录里的话，会一直目录套目录转换下去不会停。 (7).去掉了两个装饰性的选项：Auto Level（自动平衡）和Edge Enhance（边缘增强）。 v1.1 增加对Highlight的阀值的调节功能，缺省阀值从原来的170涨到190，加强对较淡的边线、文字的保护。 v1.02 将Slider的Pagesize从10降到5，方便懒人使用。 v1.01 对Brightness、Highlight的运行速度进行了优化 v1.0 提供Brightness、Contrast、Highlight、JPEG Quiality、Gray Scale、Edge Enhance功能，支持JPG文件格式。