python 等比例裁剪图片

这篇博客介绍了如何利用Python的PIL库来裁剪图片,适用于需要调整图片尺寸但对裁剪效果要求不高的场景。文章通过代码示例展示了如何保持比例地缩放图片,并保存裁剪后的结果,避免了因图片失真而需要去打印店进行专业裁剪的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

使用场景
工作中,比如办理社保卡,或者办理员工卡等,我们会提供证件照片,往往我们提供的证件照片都不符合要求,这个时候就需要对照片进行裁剪,此时我们会去印刷打印店花个几元钱让店主帮忙裁剪,这个时候我们也可以发挥作为程序猿的优势,使用程序裁剪图片(适用于对裁剪效果要求不大的情况,若是要非等比例裁剪,还是建议去打印店操作🙂)

例如我们操作一个图片,原始像素为 531*300
在这里插入图片描述代码示例

from PIL import Image


def changeImage(file_in, width, height, file_out):
    image = Image.open(file_in)
    w, h = image.size
    newwidth = width
    newheight = height
    if width > w and height > h:  # 放大
        if (width / w) > (height / h):  # 改变比例大的边
            newwidth = int(w * height / h)
        else:
            newheight = int(h * width / w)
    else:  # 缩小 或者根据比例改变
        if (w / width) > (h / height):
            newwidth = int(w * height / h)
        else:
            newheight = int(h * width / w)
    resized_image = image.resize((newwidth, newheight), Image.ANTIALIAS)
    resized_image.save(file_out)


file_in = 'C:/download/lufei.jpg'   # 原始像素 531*300
width = 600
height = 500
file_out = 'C:/Users/chenping/Desktop/lufei1.jpg'

changeImage(file_in, width, height, file_out)

效果:

在这里插入图片描述
解析:
效果图片的高度并没有改变为500,是因为高度变为500会拉伸图片导致图片失真

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值