1

我通读了使用文档,但找不到任何方法来输出 X 像素宽的图像,其高度由纵横比决定。我有大量需要光栅化的 EPS 文件,它们至少需要 2400 像素宽。我目前的解决方法是使用-r标志设置通常足够高的分辨率,但这会使许多图像比我需要的要大得多。

我目前正在使用这个命令:

gs -dNOPAUSE -sDEVICE=pngalpha -dEPSCrop -sOutputFile=./result.png -r500x500 -dEPSFITPAGE -dBATCH -dQUIET ./input.eps

我已经尝试过 , , , , 和 的不同组合和设置-g-dDEVICEWIDTH但是-dDEVICEHEIGHT-dFIXEDMEDIA无法-dFIXEDRESOLUTION弄清楚-dFitPage

我有一种感觉,可能需要某种数学来简单地设置正确的值,-r从而产生所需的尺寸,但我不确定如何去做。任何帮助表示赞赏!

4

1 回答 1

1

您不能(从命令行)指定任何会修改一个维度并使另一个维度重新缩放的内容。

您可以通过在 PostScript 中编程来做到这一点。媒体大小请求由 setpagdevice 处理,您可以重新定义 setpagedevice 以便我预处理媒体大小请求或创建一个修改媒体大小的 BeginPage 过程。

重新定义 setpagedevice 可能是最简单的。编写一个检查请求的宽度和高度以及 HWResolution 的当前值的例程。将其与已知目标值进行比较(如果需要,可以使用 -d= 将其存储在 PostScript 字典中。计算所需的比例因子并将其应用于请求的宽度和高度,适当地更改请求的值并将其传递给原始值setpagedevice 定义。

这也排除了设置 DEVICEWIDTHPOINTS、DEVICEHEIGHTPOINTS 或 FIXEDMEDIA 的任何要求。

于 2015-10-06T07:06:07.070 回答