如何将 Pillow EPS 调整为 JPG 质量

2024-01-05

我正在尝试使用 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(使用前将#替换为@)

如何将 Pillow EPS 调整为 JPG 质量 的相关文章

随机推荐

  • 如何获取给定日期前 14 天以避免节假日

    在我的系统中 帐单的到期日必须是签发日期后的 14 天 我有截止日期 我想知道签发日期 我必须计算 issued date 14 days prior to the due date but 14天必须是工作日 不能是节假日 假期存储在表
  • C#动态绑定VS2010数据库中的图表

    我必须使用动态数据源创建图表 我有一个代码 它不显示错误 但图表在运行时也不可见 这里 out table 是我的表的名称 ADX 是它的列之一 code OleDbConnection con1 new OleDbConnection P
  • 发送原始交易以太坊 infura nodejs npm

    我目前正在尝试实现与我的 Typescript 节点项目的以太坊节点连接 我正在连接到 Infura 节点服务器 我需要在本地签署我的交易 好吧 无论如何 我正在使用 npm 包 ethereumjs tx 签署我的交易 一切看起来都很棒
  • select2 - 设置输入和下拉菜单的不同宽度

    我正在使用 Select2 3 3 2 我的选择中有非常非常长的选项 例子
  • 保存记录时未插入特定列

    我正在与CakePHP 1 3 13 在这里我编写了一段代码将表单插入数据库 在这里 交易数据库表如下所示 当我将记录插入数据库时 不会插入 coupon code 列 在这里 当我打印 this gt data 时 它将给出所有数据 例如
  • 如何在 XSL 和 for-each 语法中存储值?

    我的请求 XML 是
  • bash 合并文件中的行

    我想转换这个文本 qa ops01 mysite com dev mapper sys home 58G 26G 30G 47 home dev mapper sys tmp 3 9G 2 3G 1 5G 61 tmp qa ops02 m
  • 替代关系已弃用警告

    密码查询 MATCH x WHERE x uuid 41f64ab1 6009 4e95 b22b c833525f6edb MATCH p o CONTAINS HAVING gt x WHERE labels o IN Box Pack
  • 使用 Brunch 控制脚本串联的顺序

    使用 Brunch 时控制脚本 样式表连接顺序的最佳实践是什么 我的问题的一个简单版本涉及使用 Twitter Bootstrap 的应用程序 这需要 jQuery Bootstrap 要求首先加载 jQuery 最初我的供应商 目录中有以
  • 查看单个文件时,Xcode 快速帮助显示“无快速帮助”

    当我打开 Xcode 项目时 快速帮助功能工作得很好 但是当打开文件时 例如abc swift 不在打开的项目中 则不会出现文档 这是一个例子 安装该版本Command Line Tools为你的 Xcode Xcode menu gt O
  • 尝试序列化实体框架对象时出现 XML 序列化错误

    我有通过实体框架获取的实体 我使用的是 Code First 所以它们是 POCO 当我尝试使用 XmlSerializer 对它们进行 XML 序列化时 出现以下错误 方式 System Data Entity DynamicProxie
  • MySql select IN 子句字符串逗号分隔

    我需要按以下方式执行选择查询 select from my table where id NOT IN comma delimited string 实现这一目标的正确方法是什么 考虑到我控制发送字符串的客户端代码 是否有更好的方法 该字符
  • 根据R中的另一列删除重复日期

    我有一个时间序列 其中包含几个小时的多个条目 date wd ws temp sol octa pg mh daterep 1 2007 01 01 00 00 00 100 1 5 9 0 0 8 D 100 FALSE 2 2007 0
  • Magento:何时将变量传递给块,何时不传递?

    我最近发现使用分配方法在 toHtml 方法中将变量设置到块的强大功能 我的问题是 什么时候适合这样做 什么时候不适合 我正在创建一个新模块 在我看来 将所有变量分配给块并在视图文件中引用这些变量而不是设置类似的东西是非常好的 div di
  • 使用 Anaconda 安装 Pygame

    我正在尝试在 Mac 上安装 pygame 并遇到大量错误 我不能百分百确定这告诉了我什么 但它告诉了我很多 是不是说Pygame只兼容Python 3 5 因为 StackOverflow 上还有另一张票 在 Mac 上使用 anacon
  • 使用 gtag.js 获取客户端 ID

    谷歌发布gtag js https developers google com analytics devguides collection gtagjs 几个月前 作为 Google Analytics 跟踪的新方式 据我了解 最终取代了
  • Perl方法调用可以被拦截吗?

    你能在 Perl 中拦截一个方法调用 对参数做一些事情 然后执行它吗 是的 您可以拦截 Perl 子例程调用 我有一整章关于这类事情掌握 Perl http www masteringperl org 查看钩子 LexWrap http s
  • 如何将map转换为Spark的RDD

    我有一个数据集 它是一些嵌套映射的形式 它的 Scala 类型是 Map String LabelType Map Int Double 首先Stringkey 是每个样本的唯一标识符 value 是一个包含标签 为 1 或 1 的元组 以
  • Haxl 和 Stitch 中的并发数据访问

    这是我之前的后续question https stackoverflow com questions 27591599 are futures in scala really functional 据我了解Haxl http www cs
  • 如何将 Pillow EPS 调整为 JPG 质量

    我正在尝试使用 Pillow 将 EPS 图像转换为 JPEG 但结果质量较低 我正在尝试使用resize方法 但它被完全忽略了 我将 JPEG 图像的大小设置为 3600 4700 但结果图像有 360 470 尺寸 我的代码是 eps