3

我使用 gnuplot (4.2) 将图形写入 postscript 文件。但是,当我使用“convert file.ps file.png”命令将此 .ps 文件转换为 .png 文件时,我得到一个没有背景(透明)的 png 图像。

为什么会发生这种情况,如何获得具有白色背景的 png 图像?

4

2 回答 2

4

“为什么会这样?”

两个可能的原因结合起来:

首先:您的 PostScript 输入很可能不包含任何背景。实际上,这是“透明的”。打印时,这会像往常一样出现。(某些 PostScript 文件确实有白色背景。在打印时,这仍然像往常一样出现。您只会在回想起来尝试在文件的“背景”中添加一些水印并且似乎不起作用时才发现。在这些情况下,水印笔触被白色区域覆盖,该区域再次被最初笔触的 PS 内容覆盖......)

第二:convert a.ps a.png命令本身不做这项工作。它调用外部 “委托”帮助程序,很可能是 Ghostscript。Ghostscript 有不同的方法来调整它的 PNG 输出。您可以像这样查询 Ghostscript 的所有输出“设备”:

gs -h

现在将查询限制为仅包含与 PNG 相关的设备的行:

gs -h | grep png

你会看到有一个pngalpha输出设备。这个可以输出PNG图像的透明度。

接下来,查询convert其代表的完整列表:

convert -list delegate

你会看到几十个convert在你背后使用的命令来完成它的工作。让我们看看它用于 PNG 输入或输出处理的命令:

convert -list delegate | grep -i png

您可能会发现gs ... -sDEVICE=pngalpha ...某些转换类型的命令行。

“如何获得具有白色背景的 png 图像?”

尝试这个:

convert a.ps -background white a.png
于 2010-09-13T14:24:14.700 回答
0

Pipitas 已经很好地解释了为什么会发生这种情况。

为了解决您的问题,即获得白色背景,请使用命令行-alpha off上的设置。此外,使用开关convert控制输出的分辨率也很有用。-density x因此,您应该尝试以下操作:

convert -density 300 -alpha off input.ps output.png

于 2012-01-09T13:50:09.343 回答