为什么在将非常大的图像缩小为更小的图像时,imagemagick会降低图像质量?

为什么在将非常大的图像缩小为更小的图像时,imagemagick会降低图像质量?,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,我有一堆图像,我想转换成一个单一的PDF格式,这些图像主要是文本图像(类似于教科书的扫描图像)。图像文件非常大,我不需要它们提供的分辨率 首先,作为一个基本文件,我将其中的26个“页面”简单转换为一个pdf,26个页面的总文件大小为46MB。以页面宽度模式查看时,缩放比例为原始图像的16% convert *.png kapittel1.pdf PDF页面的质量非常好,只是太大了。因此我认为,由于16%的图像足以在我的屏幕上查看页面的整个宽度,因此我可以将图像大小减少到原始值的20%,并且仍然

我有一堆图像,我想转换成一个单一的PDF格式,这些图像主要是文本图像(类似于教科书的扫描图像)。图像文件非常大,我不需要它们提供的分辨率

首先,作为一个基本文件,我将其中的26个“页面”简单转换为一个pdf,26个页面的总文件大小为46MB。以页面宽度模式查看时,缩放比例为原始图像的16%

convert *.png kapittel1.pdf
PDF页面的质量非常好,只是太大了。因此我认为,由于16%的图像足以在我的屏幕上查看页面的整个宽度,因此我可以将图像大小减少到原始值的20%,并且仍然保持相同的图像质量。图像质量明显低于缩小尺寸之前

convert -resize 20% -quality 100% *.png 20percent.pdf
我相信我需要开始研究过滤器,但在我可能浪费时间使用所有过滤器进行转换,然后比较以找到我想要使用的过滤器之前,有没有更好的方法来缩小尺寸,保持质量,然后转换为PDF?我不明白为什么我会在这里丢失像素

编辑

我尝试了
-scale
而不是
-resize
,但我确实没有看到输出中的差异。很明显,一旦低于40%,我就开始丢失像素数据。

这是一个很好的状态,默认情况下,在创建PDF时不使用图像压缩,建议使用Zip(Deflate compression):


如果您的图像仅为黑白图像,您可以尝试使用
-单色
选项和可选的Group4(传真)使用
-compressgroup4进行压缩
好吧,我发现,在
-resize
设置为30-50%之间,按照Shawn Patrick Rice关于优化扫描PDF和OCR+明文的建议,PDF的大小几乎可以忽略不计。这里的主要目标是将生成的PDF的大小降低到45英寸以下,因为这是Adobe OCR的阈值。我发现将每个图像单独转换为PDF,然后调整大小,或者在Adobe中使用过多的其他设置没有任何好处。以下过程保持不变(据我所知)所有的图像质量,并减少图像的最小尺寸PDF(在全质量)

我的过程如下:

convert *.png -resize 50% name.pdf 
// resize amount dependent on original file dimensions, goal is document height < 45"
Adobe Acrobat => Document Processing => Optimize Scanned PDF (Edit => ClearScan output style) => OK
convert*.png-调整大小50%name.pdf
//根据原始文件尺寸调整大小,目标是文档高度<45“
Adobe Acrobat=>文档处理=>优化扫描的PDF(编辑=>ClearScan输出样式)=>确定

生成的PDF文档的大小仍然很大,但是在Adobe中缩小后的大小会大大减小(90MB=>4MB)。如果我第一次调整大小为30%,会有明显的图像质量损失,但是优化后保存的大小对于上面的文件大约为800KB

将来,尝试以300DPI的灰度以1:1的比例扫描文本(如果您想要OCR);这让我得到了最好的结果。我发现,最好的办法是,事后使用Adobe对图像进行降采样和压缩(通过文档处理),然后使用“Clearscan”进行OCR,这样可以提高字体质量。我知道这并不能完全解决ImageMagick的问题,但它已经成为我扫描文档的默认工作流程。谢谢你的建议。目前,我几乎只有图像文件,最糟糕的情况是,我只需要处理非常大的PDF文件(~20x46MB)。我猜你提到的Adobe东西需要AdobeAcrobat,我没有直接访问的权限。虽然我认为与你所说的类似,我拥有的图像文件质量极高,所有数据都应该在那里,但我只希望它们更小,但质量相同。你说得对。我是说杂技演员。虽然还有其他可用的工具,但出于上述原因,我选择了Acrobat。它没有最好的OCR引擎(ABBYY Finereader有最好的),但Clearscan功能总是让我对扫描的PDF更具可读性感。您使用的是Linux、OS X还是Windows?也许还有其他的选择,我可以推荐给你。我现在在OSX上,但在寻找解决方案时,我对操作系统是极端不可知的。我刚开始使用unix imagemagick,因为我认为这是事实上的标准,但是我知道我可以在Windows上使用irfanview手动执行此操作,然后打印为PDF。即使我用的是Acrobat,你提到的过程有多复杂?如果它肯定能工作的话,我可以下载一个试用版。它相当简单。您只需从文档中创建一个新的PDF(
将文件合并为PDF
),然后使用文档处理->优化扫描仪PDF(等待一段时间完成),然后在此文件中使用文本识别->并播放设置(确保使用Clearscan),就可以了。您可能必须启用这些工具才能使它们显示出来(我忘记了我是多么的兴奋)。但你可以在每个游戏中使用设置,看看会发生什么。虽然您可以将最后两个步骤结合起来,但我发现将它们分开会得到更好的结果。谢谢,但是
-compress-Zip
似乎对输出没有任何影响,结果是大小/质量完全相同。不幸的是,文本不是黑白的。最有效的方法是
-scale
,并且不低于25%。嗯,ImageMagick默认情况下不在PDF中使用图像压缩的说法也让我有点困惑。也许在新版本中已经改变了。如果你看到缩小到一定尺寸后质量发生了巨大的变化,那可能是一个bug。您可以尝试先将图像调整为中间文件,然后在第二步中创建PDF。还请注意,
-调整大小
convert *.png -resize 50% name.pdf 
// resize amount dependent on original file dimensions, goal is document height < 45"
Adobe Acrobat => Document Processing => Optimize Scanned PDF (Edit => ClearScan output style) => OK