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选择排序算法的实现代码
Nov 21 Python
Python编程中对super函数的正确理解和用法解析
Jul 02 Python
windows下Python实现将pdf文件转化为png格式图片的方法
Jul 21 Python
使用实现XlsxWriter创建Excel文件并编辑
May 04 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
python 字典中取值的两种方法小结
Aug 02 Python
简单谈谈python基本数据类型
Sep 26 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
python中tkinter的应用:修改字体的实例讲解
Jul 17 Python
python模拟斗地主发牌
Apr 22 Python
TensorFlow使用Graph的基本操作的实现
Apr 22 Python
python爬取youtube视频的示例代码
Mar 03 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
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
PHP实现简单的计算器
2020/08/28 PHP
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
Python 正则表达式实现计算器功能
2017/04/29 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
Python列表与元组的异同详解
2019/07/02 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
django在开发中取消外键约束的实现
2020/05/20 Python
浅析Python requests 模块
2020/10/09 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
教师自我反思材料
2014/02/14 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
小学生环保标语
2014/06/13 职场文书
财务人员个人工作总结
2015/02/27 职场文书
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android