【发布时间】:2019-02-22 01:05:41
【问题描述】:
我正在使用 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 中的矢量信息应该能够缩放到任意数量的像素。它可以?我错过了一些明显和愚蠢的东西吗?
【问题讨论】:
-
我建议尝试将 EPS 升级为另一个 EPS,然后将该 EPS 转换为 JPEG。
-
继续尝试。除输出设备外,所有事物都相同,除了 eps 形式外,我得到了类似的结果。任何可以通过您所知道的“透明度扁平化”设置的 Ghostscript 技巧?我认为问题在于,由于原始ps实际上不支持透明度,我从ghostscript获得的只是位图预览,所以似乎没有办法解决它。除非我们以某种方式解释了私人插画师数据/文件。
标签: jpeg ghostscript eps