Python图片裁剪实例代码(如头像裁剪)

发布时间 - 2026-01-11 01:59:29    点击率:

今天就来说个常用的功能,图片裁剪,可用于头像裁剪啊之类的。用的还是我们之前用的哪个模块pillow

1. 安装pillow

用pip安装

pip install pillow

2. 图片裁剪

2.1 准备一张图片

2.2 我们使用的是Image中的crop(box)功能,它需要一个参数box,元组 类型,元组包括4个元素,如:
(距离图片左边界距离x, 距离图片上边界距离y,距离图片左边界距离+裁剪框宽度x+w,距离图片上边界距离+裁剪框高度y+h)

如图:(x, y, x+w, y+h), x,y是裁剪框左上角的坐标, x+w,y+h是右下角的坐标

2.3 上代码1-裁剪:

# -*-coding:utf-8-*-
from PIL import Image
im = Image.open("renren.jpeg")
# 图片的宽度和高度
img_size = im.size
print("图片宽度和高度分别是{}".format(img_size))
'''
裁剪:传入一个元组作为参数
元组里的元素分别是:(距离图片左边界距离x, 距离图片上边界距离y,距离图片左边界距离+裁剪框宽度x+w,距离图片上边界距离+裁剪框高度y+h)
'''
# 截取图片中一块宽和高都是250的
x = 100
y = 100
w = 250
h = 250
region = im.crop((x, y, x+w, y+h))
region.save("./crop_test1.jpeg")

# 截取图片中一块宽是250和高都是300的
x = 100
y = 100
w = 250
h = 300
region = im.crop((x, y, x+w, y+h))
region.save("./crop_test2.jpeg")

运行结果:

(venv) allenwoo@~/renren/code$ python test.py
图片宽度和高度分别是(500, 500)



2.4 上代码2-平均切割成4块:

# 把图片平均分成4块
# 第1块
w = img_size[0]/2.0
h = img_size[1]/2.0
x = 0
y = 0
region = im.crop((x, y, x+w, y+h))
region.save("./crop_average-1.jpeg")

# 第2块
x = w
y = h
region = im.crop((x, y, x+w, y+h))
region.save("./crop_average-2.jpeg")

# 第3块
x = 0
y = h
region = im.crop((x, y, x+w, y+h))
region.save("./crop_average-3.jpeg")

# 第4块
x = w
y = 0
region = im.crop((x, y, x+w, y+h))
region.save("./crop_average-4.jpeg")

运行结果:





2.5 上代码3-旋转图片:

# 旋转图片
# 左旋转45度
im = im.rotate(45)
im.save("./rotate-l45.jpeg")

# 右旋转30度
im = im.rotate(-30)
im.save("./rotate-r30.jpeg")

# 右旋转45度, 并裁剪一块
im = im.rotate(-30)
x = 50
y = 50
w = 150
h = 150
region = im.crop((x, y, x+w, y+h))
region.save("./rotate-r30-crop.jpeg")

运行结果:




好了,到这里你完全可以做个头像裁剪了的后端操作了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Python图片裁剪  # Python图片头像裁剪  # 详解Python+opencv裁剪/截取图片的几种方式  # Python实现图片裁剪的两种方式(Pillow和OpenCV)  # python实现自动网页截图并裁剪图片  # python实现对图片进行旋转  # 放缩  # 裁剪的功能  # python通过opencv实现图片裁剪原理解析  # Python图片处理之图片裁剪教程  # Python OpenCV实现裁剪并保存图片  # python openvc 裁剪、剪切图片 提取图片的行和列  # 一文教会你用python裁剪图片  # 都是  # 的是  # 好了  # 作了  # 做个  # 如图  # 就来  # 大家多多  # 说个  # 后端  # 组里  # 可用于  # br  # crop  # Image  # box  # PIL  # import  # im  # utf 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 长沙企业网站制作哪家好,长沙水业集团官方网站?  PHP 500报错的快速解决方法  如何在腾讯云服务器快速搭建个人网站?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel如何实现多对多模型关联?(Eloquent教程)  googleplay官方入口在哪里_Google Play官方商店快速入口指南  企业网站制作这些问题要关注  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何快速查询域名建站关键信息?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  php结合redis实现高并发下的抢购、秒杀功能的实例  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel怎么实现模型属性的自动加密  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  在线制作视频的网站有哪些,电脑如何制作视频短片?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  详解Huffman编码算法之Java实现  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  香港服务器部署网站为何提示未备案?  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Android利用动画实现背景逐渐变暗  独立制作一个网站多少钱,建立网站需要花多少钱?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  创业网站制作流程,创业网站可靠吗?  如何在橙子建站中快速调整背景颜色?  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  ,网页ppt怎么弄成自己的ppt?  Laravel如何配置Horizon来管理队列?(安装和使用)  网易LOFTER官网链接 老福特网页版登录地址  Laravel如何保护应用免受CSRF攻击?(原理和示例)  新三国志曹操传主线渭水交兵攻略  如何快速重置建站主机并恢复默认配置?  bing浏览器学术搜索入口_bing学术文献检索地址  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Java遍历集合的三种方式  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何快速生成凡客建站的专业级图册?  如何用PHP快速搭建CMS系统?