![]() |
1
2
在没有看到示例文件的情况下,不可能进行太多的注释,从而准确地确定每个阶段发生了什么。 然而,我非常怀疑你 有 “质量下降”,只是在屏幕分辨率下,你无法分辨。原始PDF文件是使用ImageMagick以150 dpi的分辨率创建的。最有可能的是,图像未压缩存储在PDF文件中,这就是其较大的原因。 当您通过Ghostscript运行该PDF文件时,有两种效果。首先,您使用了PDFSETTINGS固定作业配置集。(其中) 许多的 其他方面)将灰色图像的分辨率降低到150 dpi(幸运的是,没有效果)。它还使用JPEG压缩来压缩图像数据。 现在我不知道原始PDF文件中有什么内容,但如果那里的数据是使用JPEG压缩的(这似乎是可能的),那么您将双重应用JPEG量化。这是一个有损过程,将导致质量损失。 由于您正在更改原始图像数据(以更改颜色),因此您没有选择解压缩图像数据。然而,为了保持质量,不应再次使用JPEG压缩,而应使用扁平压缩。压缩比不会那么好,但会保持质量不变。要做到这一点,需要使用蒸馏参数指定GrayImageFilter,而不能使用PDFSETTINGS。 我无法想象Acrobat做了些什么来进一步减小文件大小(您也没有说如何“重新创建PDF文件”),但我可以想象这涉及到进一步降低图像质量。很难想象,如果不这样做,它怎么能节省50%的文件大小。它也可能是(像Ghostscript一样)JPEG压缩灰度数据,但使用了一组更激进的JPEG参数(当然会导致更多的质量损失)。 如果您发布了原始、Ghostscript输出和Acrobat输出的示例,我可能会告诉您更多,但不是从这里。 不管怎样,Ghostscript中有一个新功能(需要9.23或更高版本),允许您创建一个只包含图像的PDF文件,并选择颜色模型。您可以通过Ghostscript运行原始PDF文件,方法如下: gs-sDEVICE=pdfimage8-r150-sOutputFile=gs。pdf格式 这将生成一个非常小的PDF文件,其中原始输入已渲染为灰度图像(分辨率为150 dpi),该图像将打包为PDF文件。我不知道这样对你是否更好。 稍后编辑 是的,这正是我所期望的。 原始文件中似乎有标记为JPEG压缩的人工制品(文本周围的所有矩形“斑点”)。显然,在没有看到原始文档的情况下,我无法判断这是否是因为原始文档是打印在纸上的JPEG,或者这些人工制品是由扫描仪引入的,或者(更有可能)是任何应用程序将扫描的图像转换为PDF。检查存储在PDF文件中的图像,我发现它确实是一幅JPEG图像。 尽管如此,原始图像(在我看来)确实非常嘈杂。 现在,“convert”的输出(在易读性方面)可以说略优于原始输出。我想这与您的convert命令行有关,但不能确定。本例中的图像为 不 一个JPEG,它用运行长度编码进行压缩,这当然是无损的。作为一种压缩方法,它的效率也较低,因此图像更大。出于ImageMagick最为熟知的原因,它还将软掩码应用于图像数据。因此,现在每页有两张图像,而不仅仅是一张。不足为奇的是,它比原来的大! 我怀疑软掩码是由于您的命令行(包括RGBA)造成的。我假设这会生成一个alpha通道,PDF不支持简单的alpha通道混合,它自己的透明度模型是 很 更复杂。所以我有点怀疑您实际上是在使输出文件比需要的大。恐怕我无法帮助您使用ImageMagick,我对此一无所知,但去掉第二张图像会有很大帮助。 请注意,原始文件和ImageMagick的输出基本上都是未压缩的(就PDF文件“结构”而言)。 然后我们来看看鬼脚本生成的PDF。PDF文件的“结构”本身是压缩的,因此具有小尺寸的优点。这些图像都是JPEG压缩的,提供了额外的压缩,但以牺牲质量为代价。多次应用JPEG量化 总是 成本和质量。通过简单地比较“convert”的输出和Ghostscript的输出,我可以很容易地看到质量的下降。 现在我们来看看Acrobat的输出。与其他文件相比,它的质量最差。JPEG人工制品在显示的图像中非常清晰可见。在这种情况下,图像和软掩码都已使用JPEG2000压缩方案进行压缩,这是一种比JPEG“更好”的压缩。然而,将其应用于已经为JPEG量化的数据似乎会产生非常差的质量结果。或者至少,将其应用于软屏蔽JPEG图像会:-) JPEG2000的主要问题是它有专利权。虽然可以免费编写解码器,但要编写编码器,必须从(许多)专利持有人那里获得专利技术许可,这是一个昂贵的过程。 因此,Ghostscript的AGPL版本不包括JPEG2000解码器,因此无法写入JPEG2000图像。 显然,您可以使用Acrobat的副本用JPEG2000压缩重写PDF文件,就像您在这里所做的那样。 假设您希望避免这样做,那么我的建议是调查convert为什么要生成应用了软遮罩的图像。我强烈怀疑这是由于使用rgba而不是rgb。 避免创建第二个(软遮罩)图像(我相信)会显著减小“convert”生成的PDF文件的大小。通过Ghostscript的pdfwrite设备运行它并为GrayImageFilter指定/FlateEncode,您至少可以获得一些额外的好处,而不会损失任何质量。这将生成一个PDF文件,在该文件中对PDF家具进行压缩,并对图像数据应用更好的压缩方案。 您也可以只保留Ghostscript行,质量下降可能足以让您忍受。 |
![]() |
2
0
如果你使用ubuntu,你可以在命令行上尝试。结果令人印象深刻 为Ubuntu/Debian安装ghostscript:
使用以下命令调整pdf的大小:
替换文件名输出。pdf和输入。包含文件名的pdf。 |
![]() |
3
0
PDF可以作为向量开始。但一旦你把它读入ImageMagick,它就会被光栅化。当写回PDF时,它只是将光栅图像嵌入到矢量PDF外壳中。所以它没有被重新矢量化。
使用-density 150增加了光栅化文件。标称密度为72。因此,右边的尺寸增加了4倍,这几乎可以弥补您的尺寸增加。我想你说的加薪是错的。可能应该是这样
此外,如果扫描的PDF是矢量中的光栅,它可能在调色板形式或简单压缩的JPG形式中具有有限的颜色。光栅化已转换为24位颜色,并通过处理增加了颜色。因此,即使是非压缩灰度,它也更大。 您可以在ImageMagick中压缩输出PDF,方法如下:将光栅图像写入压缩的JPG格式,并通过管道传输到另一个转换为写入PDF。
|