Python语言学习之使用 Python 调整图像大小
小职 2021-01-12 来源 : 阅读 1575 评论 0

摘要:本文主要向大家介绍了Python语言学习之使用 Python 调整图像大小,通过具体的内容向大家展现,希望对大家Python语言的学习有所帮助。

本文主要向大家介绍了Python语言学习之使用 Python 调整图像大小,通过具体的内容向大家展现,希望对大家Python语言的学习有所帮助。

Python语言学习之使用 Python 调整图像大小

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

 

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

 

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

 

$ python3 -m pip install Pillow

按宽度缩放

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

 

from PIL import Image

 

basewidth = 300

img = 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 Image

 

baseheight = 560

img = 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] 代表高度。



关注“职坐标在线”(Zhizuobiao_Online)公众号,免费获取学习视频资料、技术就业咨询

Python语言学习之使用 Python 调整图像大小

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved