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

converting a ps image to gif image with length x900 y800

我有一张 ps 图像,我想将其转换为水平和垂直尺寸分别为 900 和 800 的 gif 图像。我尝试使用命令:

convert panel.gs -resize x800 y900 panel.gif

或者还有:

convert panel.gs -resize 900x800 panel.gif

你能帮我调整一下转换命令,这样我就能得到想要的结果吗?

好吧,首先你并没有真正说出你已经尝试过的两个命令有什么问题......

您的 PostScript 程序可能不包含 'image',PostScript 不是位图格式,它是一种编程语言。

您可以使用 Ghostscript 将 PostScript 渲染为图像,然后使用 ImageMagick 调整该图像的大小,您可以将这两个步骤结合起来,或者只执行一次转换,这取决于您想要发生什么,不清楚。

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

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

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

现在因为 Ghostscritp 不直接写 GIF 你需要加载任何位图格式你 select 到 IM 以便将它写成 GIF,所以也许最简单的解决方案就是使用Ghostscript 将 PostScript 渲染为定义的分辨率(例如 100 dpi),然后将该图像加载到 IM 并在那里重新缩放。

由于 IM(并因此转换)使用 Ghostscript 来处理 PostScript 程序,这就是现在正在发生的事情,所以我不清楚你的问题是什么。

.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