【问题标题】:Why am I losing image quality with imagemagick when reducing a very large image to a much smaller image?为什么在将非常大的图像缩小为小得多的图像时,使用 imagemagick 会丢失图像质量?
【发布时间】:2014-12-07 08:33:57
【问题描述】:

我有一堆图像要转换为单个 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%,我就会开始丢失像素数据。

【问题讨论】:

  • 以后尝试以300DPI的灰度1:1扫描文本(如果要OCR的话);这让我得到最好的结果。我发现它总是效果最好,之后使用 Adob​​e 对图像进行下采样和压缩(通过文档处理),然后使用“Clearscan”对其进行 OCR,这会提高字体的质量。我知道这并不能完全解决 ImageMagick,但它已成为我扫描文档的默认工作流程。
  • 感谢您的建议。目前我几乎只有图像文件,最坏的情况是我只需要处理非常大的 PDF 文件(~20x46MB)。我猜你提到的 Adob​​e 东西需要 Adob​​e Acrobat,我无法立即访问。虽然我认为与您所说的类似,但我拥有的图像文件质量非常高,所有数据都应该在那里,我只是希望它们更小但质量相同。
  • 你是对的。我的意思是杂技演员。虽然还有其他可用的工具,但出于上述原因,我选择了 Acrobat。它没有最好的 OCR 引擎(ABBYY Finereader 拥有最好的),但 Clearscan 功能总是让我赢得了扫描 PDF 的可读性。您使用的是 Linux、OS X 还是 Windows?可能还有其他选择,我可以向您推荐。
  • 我现在在 OSX 上,但在寻找适用于此的解决方案时,我对操作系统非常不可知。我刚开始使用 unix imagemagick,因为我认为这是事实上的标准,但是我知道我可以在 Windows 上使用 irfanview 手动执行此操作,然后打印为 PDF。即使我使用的是 Acrobat,您提到的过程有多复杂?如果它肯定会起作用,我可能会为这项工作下载试用版。
  • 这很简单。您只需从文档(Combine Files into PDF)创建一个新的 PDF,然后使用文档处理 -> 优化扫描仪 PDF(等待一段时间以完成),然后使用文本识别 -> 在此文件中并使用设置(确保你使用 Clearscan),就是这样。您可能必须启用工具才能使它们出现(我忘记了我的头顶)。但是您可以使用每个设置来查看会发生什么。虽然您可以将最后两个步骤结合起来,但我发现将它们分开会得到更好的结果。

标签: imagemagick imagemagick-convert


【解决方案1】:

优秀的ImageMagick Examples 指出,默认情况下,创建 PDF 时不使用图像压缩,并建议使用 Zip(Deflate 压缩):

convert *.png -compress Zip -quality 100 kapittel1.pdf

如果您的图像只有黑白,您可以尝试使用-monochrome 选项和可选的使用-compress Group4 的Group4(传真)压缩。

【讨论】:

  • 谢谢,但-compress Zip 似乎对输出没有影响,导致与没有它时完全相同的大小/质量。不幸的是,文本不是黑白的。不过,似乎效果最好的是-scale,并且不会低于 25%。
  • 嗯,我也对 ImageMagick 默认情况下不在 PDF 中使用图像压缩的说法感到有些困惑。也许在较新的版本中已经改变了。如果您在缩小到一定大小后看到质量发生巨大变化,则可能是一个错误。您可以先尝试将图像大小调整为中间文件,然后在第二步中创建 PDF。另请注意,-resize 通常比-scale 产生更好的输出。
  • 可能只是我的视力,我不知道,但我发现 -scale-resize 的质量更好,可能只是它们几乎相同,我想相信我找到了更好的方法来做到这一点。这一定是一个错误,好像我只是在 Windows 中使用 IrfanView 将大小减小 20%,然后打印到 PDF 就可以了。现在,我将缩放到原始文件的 25% 并处理多个大型 PDF 文件。
【解决方案2】:

好吧,我发现在 -resize 设置为 30-50% 之后,在 Shawn Patrick Rice 提出的优化扫描的 PDF 和 OCR+ClearText 的建议之后,PDF 的大小可以忽略不计。这里的主要目标是将生成的 PDF 的大小减小到 45 英寸以下,因为这是 Adob​​e 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

生成的 PDF 文档的大小仍然很大,但是在 Adob​​e 中缩小后的大小会大大减小(90MB => 4MB)。如果我首先将大小调整为 30%,则会出现明显的图像质量损失,但优化后我将节省的大小量约为 800KB 的上述文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 2012-06-22
    • 2011-04-18
    • 2020-08-20
    • 2020-10-01
    • 1970-01-01
    • 2017-10-14
    相关资源
    最近更新 更多