如何将枕头EPS调整为JPG品质 - python

我正在尝试使用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图像变大了,但是质量仍然很差。我已经尝试过为resize函数使用不同的DPI,大小,重采样值,但是结果并没有太大变化。我怎样才能做得更好?

如何将枕头EPS调整为JPG品质 - python

参考方案

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

如果该网格的分辨率不足,您将永远无法重新获得它。通常,它以100dpi的速度进行光栅化,因此,如果要制作更大的图像,则需要在更大的网格上进行光栅化,然后才能开始使用。

比较:

from PIL import Image

eps_image = Image.open('image.eps')
eps_image.save('a.jpg')

结果为540x720:

如何将枕头EPS调整为JPG品质 - python

还有这个:

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:

如何将枕头EPS调整为JPG品质 - python

现在,您可以根据自己的需要调整质量。

请注意,您根本不需要编写任何Python即可完成此操作-ImageMagick将为您完成所有操作。它包含在大多数Linux发行版中,并且可用于macOS和Windows,您只需在终端中使用它即可。等效命令如下所示:

magick -density 400 input.eps -resize 800x600 -quality 95  output.jpg

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

如何用'-'解析字符串到节点js本地脚本? - python

我正在使用本地节点js脚本来处理字符串。我陷入了将'-'字符串解析为本地节点js脚本的问题。render.js:#! /usr/bin/env -S node -r esm let argv = require('yargs') .usage('$0 [string]') .argv; console.log(argv…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…