我正在尝试使用 Pillow 将 EPS 图像转换为 JPEG。但结果质量较低。我正在尝试使用resize
方法,但它被完全忽略了。我将 JPEG 图像的大小设置为(3600, 4700)
,但结果图像有(360, 470)
尺寸。我的代码是:
eps_image = Image.open('img.eps')
height = eps_image.height * 10
width = eps_image.width * 10
new_size = (height, width)
print(new_size) # prints (3600, 4700)
eps_image.resize(new_size, Image.ANTIALIAS)
eps_image.save(
'img.jpeg',
format='JPEG'
dpi=(9000, 9000),
quality=95)
UPD.Vasu Deo.S 注意到了我的一个错误,多亏了他,JPG 图像变得更大,但质量仍然很低。我尝试过不同的 DPI、尺寸、重新采样值resize
函数,但结果并没有太大变化。我怎样才能让它变得更好?
问题是 PIL 是一个raster图像处理器,而不是vector图像处理器。它“栅格化”当它打开矢量图像(例如 EPS 文件和 SVG 文件)时,它们会保存到网格上,因为它只能处理光栅。
如果该网格没有足够的分辨率,您将永远无法重新获得它。通常,它以 100dpi 进行栅格化,因此如果您想制作更大的图像,则需要在开始之前栅格化到更大的网格。
Compare:
from PIL import Image
eps_image = Image.open('image.eps')
eps_image.save('a.jpg')
结果是 540x720:
和这个:
from PIL import Image
eps_image = Image.open('image.eps')
# Rasterise onto 4x higher resolution grid
eps_image.load(scale=4)
eps_image.save('a.jpg')
结果是 2160x2880:
您现在有足够的质量可以根据需要调整大小。
请注意,您根本不需要编写任何 Python 来执行此操作 -图像魔术师将为您做这一切。它包含在大多数 Linux 发行版中,并且可用于 macOS 和 Windows,您只需在终端中使用它。等效命令如下:
magick -density 400 input.eps -resize 800x600 -quality 95 output.jpg
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)