Ghostscript tiffg3灰色=黑色

时间:2013-02-08 01:32:59

标签: ghostscript

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

示例命令:

gs -dQUIET -dNOPAUSE -dBATCH -r200 -sPAPERSIZE = letter -sDEVICE = tiffg3 -sOutputFile = out.tiff in.pdf

示例输入: enter image description here

示例输出: enter image description here

期望的输出: enter image description here

2 个答案:

答案 0 :(得分:1)

1位设备使用半色调(也称为屏幕)来仅使用黑白像素来表示灰度阴影。这就是它的目的,它的意图改变颜色。

有多种方法可以伪造你想要的PostScript(重新定义setgray是一种方法,也设置传递函数),但PDF不是一种编程语言,所以这种方法并没有真正起作用。

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

Ghostscript中有基于对象类型的其他控件,因此您可以选择仅将此转换应用于文本或线条。 理想情况下,您应该返回原始文档,在那里进行更改,然后制作新的PDF。

答案 1 :(得分:0)

您可以使用标志-level来使用imagemagick转换来实现此目的。例如,将图像转换为纯黑/白将灰度分成两半:

convert -level 50%,50%file.pdf blackwhite.pdf

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

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

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