将ps图像转换为长度为x900 y800的gif图像

时间:2018-06-28 22:50:37

标签: image gif ghostscript postscript

我有一个ps图像,要分别转换为水平和垂直尺寸分别为900和800的gif图像。我尝试使用以下命令:

convert panel.gs -resize x800 y900 panel.gif

或:

convert panel.gs -resize 900x800 panel.gif

您能帮我调整转换命令,以便获得所需的结果吗?

2 个答案:

答案 0 :(得分:1)

好吧,首先,您实际上并没有说出您已经尝试过的两个命令出了什么问题.....

您的PostScript程序可能不包含“图像”,PostScript不是一种位图格式,而是一种编程语言。

您可以使用Ghostscript将PostScript渲染为图像,然后使用ImageMagick调整该图像的大小,可能您可以结合使用这两个步骤,或者仅执行一次转换,这取决于您要发生的确切情况,还不清楚。

例如,如果您的PostScript程序请求的介质尺寸为9英寸乘8,则可以使用-r100只需将分辨率设置为100 dpi,即可创建位图图像。

如果您希望图像在各个方向上的缩放比例不同,则需要设置非正方形分辨率。例如,如果PostScript程序请求9英寸乘4的介质,则需要将分辨率设置为100x200,以获取恰好900 x 800像素的图像。为此,您将使用-r100x200

从PostScript的角度来看,替代方法是将媒体大小设置为给定 (以-g900x800为单位的像素值,并设置-dDFIXEDMEDIA,以防止PostScript程序对其进行更改。然后,您可以使用-dFitPage,它将使Ghostscript缩放内容以适合页面。但是,它将在两个方向上均等缩放内容,这可能会在边缘周围留下空白。

现在,由于Ghostscritp不会直接编写GIF,因此您需要将选择的任何位图格式加载到IM中,以将其写为GIF,所以也许最简单的解决方案就是使用Ghostscript将PostScript呈现为定义的分辨率(例如100 dpi),然后将该图像加载到IM中并在那里缩放。

由于IM(并因此进行了转换)使用Ghostscript来处理PostScript程序,所以现在正在发生这种情况,因此对我来说您的问题不明显。

答案 1 :(得分:1)

.gs不是有效的后缀。您是说.ps吗?

Imagemagick将需要ghostscript作为委托。您没有说错是什么,也没有说Imagemagick的平台或版本。

如果图像的长宽比与所需的最终尺寸不同,则您可以1)需要使用!使其变形以适合它,2)调整其大小,然后扩展为您想要用背景色填充的大小,或3)用^调整大小,并将其裁剪为所需的大小。

convert panel.ps -resize "900x800!" panel.gif

convert panel.ps -resize 900x800 -gravity center -background white -extent 900x800 panel.gif

convert panel.ps -resize "900x800^" -gravity center -extent 900x800 panel.gif