如何将一个 .eps 文件转换为高质量的 1024x1024 .jpg 格式?

51

我有一个.eps文件,在 Photoshop 中可以查看,它具有非常高的分辨率、清晰的边缘等,甚至比1024x1024还大。

我想用 ImageMagick 将这个 .eps 转换为一个 1024x1024 的 .jpg,并且保持非常高的分辨率。

然而,使用以下命令,生成的图像非常模糊:

convert -resize "1024x1024" -colorspace RGB -flatten test.eps test.jpg 

我需要使用哪些ImageMagick参数,才能得到一个1024x1024的高质量、清晰的.jpg图片?

这里有一些我们发现的XMP数据,可能是导致它无法使用-size进行调整大小的原因:

输入图像描述


7
由于JPG使用DCT变换,因此它适用于自然图像,例如照片。它不适用于具有锐利边缘的图像。建议改用png格式。只是一种想法... - Fredrik Pihl
命令 convert -resize "1024x1024" -colorspace RGB -flatten test.eps test.png 生成的 .png 文件仍然模糊不清,我认为需要增加 dpi 但是无法得到正确的参数设置。 - Edward Tanguay
尝试使用此处描述的-filter选项来更改调整大小所使用的方法,以获得更合适的效果。链接:http://www.imagemagick.org/script/command-line-options.php?ImageMagick=l4s55sb18gpqvae2pfd820a1g4#filter - Fredrik Pihl
找不到任何可行的过滤器设置,例如 convert -resize "1024x1024" -colorspace RGB -flatten -define filter:blur=.4 test.eps test.jpg 并没有使其更加清晰,而是将其变成了小方块。 - Edward Tanguay
嗯,模糊半径为0.4可能不是最适合调整大小的最佳滤镜 :-) - Fredrik Pihl
2个回答

92

对于矢量图形,ImageMagick有一个渲染分辨率和一个输出大小,两者是独立的。

尝试像这样:

convert -density 300 image.eps -resize 1024x1024 image.jpg
这将以300dpi的分辨率呈现您的eps。如果 300 * 宽度 > 1024,则图像将清晰可见。如果您渲染得太高,会浪费大量内存并绘制一个真正高分辨率的图形,只是为了再次下采样它。目前我不知道一种在一条IM命令中以“正确”分辨率呈现它的好方法。
重要提示:参数顺序很重要!"-density X"参数需要放在"image.eps"之前,因为您要影响输入文件所呈现的分辨率。虽然在 "convert" 的手册页中并不是非常明显,但是有所暗示:
SYNOPSIS convert [input-option] input-file [output-option] output-file

3
谢谢,做到了。实际上,最佳的分辨率结果是当density=resize时,例如:convert -density 1024x1024 -resize 1024x1024 test.eps test.jpg - Edward Tanguay
2
不,我不相信它做的是你想要的事情。它会以1024dpi渲染您的图像,然后将其缩小为1024x1024px。例如,一个4x4英寸的EPS在内存中会变成4096x4096px,然后调整大小为1024x1024px。 - erjiang
30
当我在谷歌搜索时,我找到了这个stackoverflow答案,它位于另一个正确答案和关键信息下面/之后。它的关键点是确保-density标志(我使用“-density 400%”)出现在输入文件名之前。在我的原始设置中,我将所有标志夹在输入文件名和输出文件名之间,这种情况下-density无效(导致文本字体图像模糊)。因此,读者应确保-density出现在test.eps和test.jpg之前。[我通常将pdf转换为png的情况很常见。] - Jose_X
3
Jose_X在我搜寻了数小时之后是唯一解决了我的问题的人。把密度放在源之前才是答案。谢谢。 - Sean Clark

0
也许你应该试一试使用 -quality 100 -size "1024x1024" 进行处理,因为调整大小往往会产生难看的结果。

1
哦,convert -colorspace RGB -flatten -quality 100 -size "1024x1024" test.eps test.jpg创建了一个大小为100x41的.jpg文件,这是为什么呢? - Edward Tanguay
你尝试过不加引号吗?否则我就无法知道问题出在哪里。 - Stephan
是的,我尝试过不带引号,结果相同。一位同事提到“XMP信息将缩略图定义为较小的尺寸”,也许我需要以某种方式覆盖它? - Edward Tanguay
我知道的另一件事是使用“-resize 1024x1024!”,这应该忽略比例。 - Stephan
命令 convert -quality 100 -size 1024x1024 test.eps test.pngconvert -size 1024x1024 test.eps test.png 会导致 ImageMagick 崩溃,出现 "ImageMagick 遇到了问题" 的提示。 - Edward Tanguay
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接