Ghostscript tiffg3 灰色=黑色
Posted
技术标签:
【中文标题】Ghostscript tiffg3 灰色=黑色【英文标题】:Ghostscript tiffg3 gray=black 【发布时间】:2013-02-08 01:32:59 【问题描述】:尝试获取 pdf 并将其转换为 tiff,但将所有灰度变为纯黑色。换句话说,如果它不是白色的,它应该是黑色的。 tiffg3 设备是 1 位的,但它仍然是灰色并试图伪造它。
示例命令:
gs -dQUIET -dNOPAUSE -dBATCH -r200 -sPAPERSIZE=letter -sDEVICE=tiffg3 -sOutputFile=out.tiff in.pdf
示例输入:
示例输出:
期望的输出:
【问题讨论】:
【参考方案1】:1 位设备使用半色调(又称加网)仅使用黑白像素来表示灰色阴影。这就是它的意图,它的不是打算改变颜色。
您可以通过多种方式在 PostScript 中伪造您想要的内容(重新定义 setgray 是一种方法,也是设置传递函数),但 PDF 不是一种编程语言,因此这种方法实际上并不奏效。
您可以使用自定义 ICC 配置文件对灰度值进行颜色校正,使它们全为黑色。 Ghostscript 版本 9 及更高版本使用 Little CMS 作为色彩管理系统,并具有您可以覆盖的“默认”灰色 ICC 配置文件。据推测,构建一个将白色以外的任何东西映射到纯黑色的配置文件可能很容易。然而,这不是我的领域。您还需要考虑这将如何影响(例如)图像。
Ghostscript 中还有基于对象类型的附加控件,因此您可以选择仅将此转换应用于文本或线条。 理想情况下,您应该返回原始文档,在那里进行修改,然后制作一个新的 PDF。
【讨论】:
ICC 配置文件有什么好的起点吗?我一直在谷歌搜索,但这也不是我的领域......谢谢,【参考方案2】:您可以为此使用从 imagemagick 转换,使用标志级别。例如将图像转换为纯黑/白,将灰度分成两半:
转换-level 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 中提供更好的质量。
【讨论】:
以上是关于Ghostscript tiffg3 灰色=黑色的主要内容,如果未能解决你的问题,请参考以下文章