Ghostscript:将非常小的eps升级为大jpg

问题描述 投票:0回答:2

我正在使用ghostscript将eps文件格式化为jpg格式。我正在努力并且似乎无法看到明显的答案是如何使用非常小的边界框正确地“升级”eps文件。例:

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

使用dEVICE WIDTH / 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中的矢量信息应该能够缩放到任意数量的像素。它可以?我错过了一些明显而愚蠢的东西吗?

jpeg ghostscript eps
2个回答
0
投票

你没有提供EPS文件,所以很难找出问题,这里有一些想法:

1)不要乱用JPEG质量,事实上,不要使用JPEG。写出像TIFF这样的无损格式。这将防止JPEG量化与输出混乱,并消除可能的问题。

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


0
投票

事实证明,这与最初保存文件时选择的“透明度展平”设置有关。我正在使用插画家,这些范围从“低”到“复杂”预设(“中”是默认值)。

"Medium" settings

"Complex" settings

在一个非常小的eps中,使用默认的“中等”设置保存透明效果,结果光栅的质量非常低,似乎没有ghostscript可以做的任何事情。如果选择“复杂”,则栅格具有完整的质量/分辨率。如果您将图稿缩放到与所需像素大致相同的点数,则“中”设置会产生与使用小图像的“复杂”设置相当的质量的栅格。

在创建文件之后,(对我来说)没有任何可以解决的问题。

© www.soinside.com 2019 - 2024. All rights reserved.