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


Posted in Python onJune 21, 2017

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

1. 安装pillow

用pip安装

pip install pillow

2. 图片裁剪

2.1 准备一张图片

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

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是右下角的坐标

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

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)

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

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

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")

运行结果:

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

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

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

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

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图片裁剪实例代码(如头像裁剪)

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

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

Python 相关文章推荐
Python中关于字符串对象的一些基础知识
Apr 08 Python
浅析Python基础-流程控制
Mar 18 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
Pandas实现数据类型转换的一些小技巧汇总
May 07 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
python networkx 包绘制复杂网络关系图的实现
Jul 10 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
pandas 中对特征进行硬编码和onehot编码的实现
Dec 20 Python
Python变量作用域LEGB用法解析
Feb 04 Python
Python多个装饰器的调用顺序实例解析
May 22 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
快速解释如何使用pandas的inplace参数的使用
Jul 23 Python
Python编程实战之Oracle数据库操作示例
Jun 21 #Python
Python获取SQLite查询结果表列名的方法
Jun 21 #Python
基于hashlib模块--加密(详解)
Jun 21 #Python
详谈Python基础之内置函数和递归
Jun 21 #Python
浅谈python内置变量-reversed(seq)
Jun 21 #Python
python 简单的绘图工具turtle使用详解
Jun 21 #Python
利用python批量给云主机配置安全组的方法教程
Jun 21 #Python
You might like
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
如何利用Fabric自动化你的任务
2016/10/20 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
python实现抖音视频批量下载
2018/06/20 Python
python3.4中清屏的处理方法
2020/07/06 Python
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
天网面试题
2013/04/07 面试题
AJAX的全称是什么
2012/11/06 面试题
学生档案自我鉴定
2013/10/07 职场文书
科室工作个人总结的自我评价
2013/10/29 职场文书
小学数学国培感言
2014/03/10 职场文书
经典促销广告词大全
2014/03/19 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android