我阅读了使用文档,找不到任何方法输出X像素宽的图像,高度由宽高比决定。我需要栅格化大量的EPS文件,它们需要至少2400px宽。我目前的解决方法是使用-r
标志设置一个通常足够高的分辨率,但是这使得许多图像比我需要的大得多。
我目前正在使用此命令:
gs -dNOPAUSE -sDEVICE=pngalpha -dEPSCrop -sOutputFile=./result.png -r500x500 -dEPSFITPAGE -dBATCH -dQUIET ./input.eps
我尝试过-g
,-dDEVICEWIDTH
,-dDEVICEHEIGHT
,-dFIXEDMEDIA
,-dFIXEDRESOLUTION
和-dFitPage
的不同组合和设置,但是我无法理解。
我有一种感觉,可能需要某种类型的数学来简单地设置-r
的正确值,这将产生所需的尺寸,但我不知道如何解决这个问题。任何帮助表示赞赏!
答案 0 :(得分:1)
您无法指定(从命令行)任何会修改一个维度并使另一个维度重新缩放的内容。
您可以通过PostScript编程来完成此操作。媒体大小请求由setpagdevice处理,您可以重新定义setpagedevice,以便我预处理媒体大小请求或创建一个修改媒体大小的BeginPage过程。
重新定义setpagedevice可能是最简单的。编写一个例程,检查所请求的宽度和高度,以及HWResolution的当前值。将其与已知目标值进行比较(如果需要,可以使用-d =存储在PostScript字典中。计算所需的比例因子并将其应用于请求的宽度和高度,适当地更改请求的值并将这些值传递给原始值setpagedevice定义。
这也排除了设置DEVICEWIDTHPOINTS,DEVICEHEIGHTPOINTS或FIXEDMEDIA的任何要求。