我使用gnuplot(4.2)将图形写入postscript文件。但是当我使用'convert file.ps file.png'命令将此.ps文件转换为.png文件时,我得到一个没有背景(透明)的png图像。
为什么会发生这种情况,如何获得白色背景的png图像?
答案 0 :(得分: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 ...
命令行。
试试这个:
convert a.ps -background white a.png
答案 1 :(得分:0)
Pipitas已经很好地解释了为什么会这样。
为了解决您的问题,即获得白色背景,请使用-alpha off
命令行上的convert
设置。此外,使用-density x
开关控制输出的分辨率非常有用。因此,你应该尝试类似的东西:
convert -density 300 -alpha off input.ps output.png