首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将枕头EPS调整为JPG质量

如何将枕头EPS调整为JPG质量
EN

Stack Overflow用户
提问于 2019-06-11 20:32:24
回答 2查看 1.1K关注 0票数 2

我正在尝试使用枕头将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)

Vasu Deo.S注意到了我的一个错误,多亏了他,图像变得更大了,但质量仍然很低。我尝试了不同的DPI,大小,重采样值的resize函数,但结果没有太大的变化。我怎么才能让它变得更好呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-13 02:29:12

问题是PIL是光栅图像处理器,而不是矢量图像处理器。它在打开矢量图像(如EPS文件和SVG文件)时将其“栅格化”到网格上,因为它只能处理光栅。

如果该网格没有足够的分辨率,您将永远无法重新获得它。通常,它以100dpi的速度栅格化,所以如果你想制作更大的图像,你甚至需要在开始之前栅格化到更大的网格上。

比较:

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来完成这项工作- ImageMagick将为您完成所有这些工作。它包含在大多数Linux发行版中,可用于macOS和Windows,您只需在终端中使用它即可。等效的命令如下所示:

magick -density 400 input.eps -resize 800x600 -quality 95  output.jpg
票数 4
EN

Stack Overflow用户

发布于 2019-06-12 16:37:41

这是因为eps_image.resize(new_size, Image.ANTIALIAS)返回了一个调整大小的图像副本。因此,您必须将其存储在一个单独的变量中。只需更改:-

eps_image.resize(new_size, Image.ANTIALIAS)

eps_image = eps_image.resize(new_size, Image.ANTIALIAS)

更新:-

这些可能不能完全解决问题,但仍然会有所帮助。

  • 您正在尝试将输出图像另存为.jpeg,这是一种有损压缩格式,因此在压缩/转换过程中会丢失信息(大部分情况下)。将输出文件扩展名更改为无损压缩格式,如.png,这样数据就不会在压缩过程中受到影响。此外,在Image.save()
  • You中将quality=95更改为quality=100使用Image.ANTIALIAS对图像进行重采样,这在放大图像时并不是很好(在较新的版本中它已被Image.LANCZOS取代,为了向后兼容,该子句仍然存在)。尝试使用Image.BICUBIC,它在放大图像时会产生非常好的结果(在大多数情况下)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56543825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档