博客
关于我
使用 Python 调整图像大小 | Linux 中国
阅读量:307 次
发布时间:2019-03-03

本文共 1709 字,大约阅读时间需要 5 分钟。

 

导读:快速解释如何在 Python 中调整图像大小,同时保持相同的长宽比。                     

本文字数:1693,阅读时长大约:2分钟

https://linux.cn/article-13003-1.html
作者:Dayo Ntwari
译者:geekpi

我喜欢 Python,而且我已经学了一段时间了。前段时间,我写了一个 Python 脚本,在这个脚本中,我需要调整一堆图片的大小,同时保持长宽比(比例)不变。于是我四处寻找,发现了 ,这是一个 Python 图像库,也是一个叫做 PIL 的旧库的“友好复刻”。

要安装 Pillow,请使用 Python 的 pip 模块:

$ python3 -m pip install Pillow

按宽度缩放

这是一个使用 Pillow 模块来调整图片大小的基本脚本:

from PIL import Imagebasewidth = 300img = Image.open('fullsized_image.jpg')wpercent = (basewidth / float(img.size[0]))hsize = int((float(img.size[1]) * float(wpercent)))img = img.resize((basewidth, hsize), Image.ANTIALIAS)img.save('resized_image.jpg')

这几行 Python 代码使用 Pillow 将一张图片 (fullsized_image.jpg) 调整为 300 像素的宽度,宽度在变量 basewidth 中设置,高度则与新的宽度成比例。比例高度的计算方法是:确定 300 像素占原宽度 (img.size[0]) 的百分比,然后将原高度(img.size[1]) 乘以该百分比。所得的高度值保存在变量 hsize 中。

如果你需要不同的图片宽度,你可以将 basewidth 改为任何其他数字。另外,请注意,因为我想保留全尺寸的图片 (fullsized_image.jpg),因此我将调整后的图片以一个不同的名称 resized_image.jpg 保存。当然,你不必这么做。如果你想,你可以使用相同的文件名将调整后的图片覆盖全尺寸的图片。

按高度缩放

如果高度是固定的,而宽度是按比例变化的,那也基本差不多,你只需要把东西换一下:

from PIL import Imagebaseheight = 560img = Image.open('fullsized_image.jpg')hpercent = (baseheight / float(img.size[1]))wsize = int((float(img.size[0]) * float(hpercent)))img = img.resize((wsize, baseheight), Image.ANTIALIAS)img.save('resized_image.jpg')

注意 basewidth 现在换成了 baseheight,因为高度是固定的。在第三行中,我们在计算高度百分比,所以我们需要 img.size[1] 而不是 img.size[0]size 属性是一个元组,包含宽度和高度,单位是像素,size[0] 指的是第一个元组元素,也就是宽度,size[1] 是第二个元素,也就是高度。第 4 行也有这样的切换,size[0] 代表宽度,size[1] 代表高度。


via: https://opensource.com/life/15/2/resize-images-python

作者:Dayo Ntwari 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


欢迎遵照 CC-BY-NC-SA 协议规定转载,

如需转载,请在文章下留言 “转载:公众号名称”。

我们将为您添加白名单,授权“转载文章时可以修改”,

可以修改版式,但不能修改文字和图片内容。

你可能感兴趣的文章
oracle 行转列
查看>>
Oracle 表
查看>>
Oracle 递归
查看>>
oracle 逻辑优化,提升高度,综合SQL上下文进行逻辑优化
查看>>
oracle 闪回关闭,关闭闪回即disable flashback的操作步骤
查看>>
oracle 限制用户并行,insert /*parallel */ 到不同用户,并行起不来的问题
查看>>
oracle--用户,权限,角色的管理
查看>>
oracle00205报错,Oracle控制文件损坏报错场景
查看>>
Oracle10g EM乱码之快速解决
查看>>
Oracle10g下载地址--多平台下的32位和64位
查看>>
Oracle10g安装了11g的ODAC后,PL/SQL连接提示TNS:无法解析指定的连接标识符
查看>>
oracle11g dataguard物理备库搭建(关闭主库cp数据文件到备库)
查看>>
Oracle11G基本操作
查看>>
Oracle11g服务详细介绍及哪些服务是必须开启的?
查看>>
Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统
查看>>
oracle12安装软件后安装数据库,然后需要自己配置监听
查看>>
Oracle——08PL/SQL简介,基本程序结构和语句
查看>>
Oracle——distinct的用法
查看>>
Oracle、MySQL、SQL Server架构大对比
查看>>
oracle下的OVER(PARTITION BY)函数介绍
查看>>