2013-02-08 63 views
1

尝试使用pdf并将其转换为TIFF,但将所有灰度变为纯黑色。换句话说,如果它不是白色的,它应该是黑色的。该tiffg3设备是1位,但它仍然灰色,并试图伪造它。Ghostscript tiffg3灰色=黑色

实施例的命令:

GS -dQUIET -dNOPAUSE -dBATCH -r200 -sPAPERSIZE =信-sDEVICE = tiffg3 -sOutputFile = out.tiff in.pdf

示例输入: enter image description here

示例输出: enter image description here

希望的输出: enter image description here

回答

1

1位设备使用半色调(aka screening)来表示仅使用黑白像素的灰度阴影。这是它打算做的,它的而不是打算改变颜色。

在PostScript中有各种方法可以伪造你想要的东西(重新定义setgray是一种方法,同时设置传输函数),但PDF不是一种编程语言,所以这种方法并不适用。

您可以使用自定义ICC配置文件对正确的灰色值进行着色,使其全部为黑色。 Ghostscript版本9及以上版本使用Little CMS作为色彩管理系统,并具有可以覆盖的“默认”灰色ICC配置文件。据推测,构建一个将白色以外的东西映射到纯黑色的配置文件将非常容易。但是,这不是我的领域。您还需要考虑这将如何影响(例如)图像。

在Ghostscript中还有一些基于对象类型的控件,因此您可以选择仅将此转换应用于文本或线条工作。 理想情况下,您应该回到原始文档,在那里修改它,并制作一个新的PDF。

+0

任何好的地方开始在ICC配置文件的东西?我一直在谷歌搜索,但这也不是我的领域...谢谢, –

0

您可以使用imagemagick转换为此目的,使用标志级别。例如,为了将图像转换为纯黑色/白色分裂的灰度等级在一半:

转换 - 电平的50%,50%file.pdf blackwhite.pdf

,然后将其传递给GS。我对传真的建议虽然是离开灰度的一部分,因为有许多文件依赖于它为它的易读性:

转换-density 816x784 -level 55%,95%file.pdf blackwhite.pdf

这一个在那里留下40%的灰度,在范围0-55(0黑和100白)中的每个点都转换成黑色,并将所有范围在95-100范围内变为白色,您可以玩这个并获得最佳匹配。密度标志将在稍后转换为GS中的tiffg3时提供帮助,从而在生成的tif中提供更好的质量。