Ghostscript:将非常小的eps放大为大jpg

时间:2019-02-22 01:05:42

标签: jpeg ghostscript eps

我正在使用ghostscript将eps文件光栅化为jpg格式。我正在努力奋斗并且似乎看不到一个明显的答案的是如何使用一个非常小的边界框正确地“放大”一个eps文件。示例:

%%BoundingBox: 0 0 71 47
%%HiResBoundingBox: 0 0 70.9961 46.0020

使用dDEVICEWIDTH / HEIGHT选项可以显示的像素要多得多(即4兆像素)。我们使用的带有相关选项的gs调用示例:

gs -sDEVICE=jpeg -dEPSFitPage -dJPEGQ=100 -dBATCH -r300 -g2458x1628 -sOutputFile=output.jpg input.eps

这将生成具有所需像素尺寸的jpg,但其像素化程度很高,从而丢失了矢量的所有细节。我已经尝试了ghostscript文档中可能相关的选项:

-r1000...
-dInterpolateControl=<-1 through 1000>
-dGraphicsAlphaBits=<1,2,4>

这些似乎都不会对生成的jpg的像素产生任何影响。这种效果似乎与边框所代表的点直接相关,即一个点==一个像素,任何放大都会导致质量/像素损失。

我对为什么如此感到困惑。在我看来(例如),eps中的矢量信息应该能够缩放到任意数量的像素。它可以?我是否缺少明显而愚蠢的东西?

2 个答案:

答案 0 :(得分:0)

您尚未提供EPS文件,因此很难查明问题,这里有一些想法:

1)不要搞乱JPEG质量,实际上,不要使用JPEG。写出无损格式,例如TIFF。这样可以防止JPEG量化干扰输出,并消除可能的问题。

2)检查EPS,看其中是否包含图像。对我来说,这似乎是最可能的问题。 PostScript程序可以包含图像数据也可以包含矢量,如果您的EPS包含低分辨率图像,那么对您没有什么帮助,结果将受到输入中图像样本数量的限制。

答案 1 :(得分:0)

因此,这与最初保存文件时选择的“透明度平整”设置有关。我使用的是illustrator,范围从“低”到“复杂”的预设(默认为“中”)。

"Medium" settings

"Complex" settings

在一个非常小的eps中,使用默认的“中”设置保存了透明效果,因此最终得到的光栅的质量很低,并且鬼脚本似乎对此无能为力。如果选择“复杂”,则光栅具有完整的质量/分辨率。如果您将图稿按比例缩放到所需像素的大致相同数量,则“中”设置将产生与使用“复杂”设置较小的光栅相当的质量光栅。

在我看来,在文件已经创建之后,没有什么可以解决的方法。

相关问题