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描述器descriptor详解
Feb 03 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
Python拼接微信好友头像大图的实现方法
Aug 01 Python
浅谈Python traceback的优雅处理
Aug 31 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
Python3创建Django项目的几种方法(3种)
Jun 03 Python
从python读取sql的实例方法
Jul 21 Python
详解Pycharm与anaconda安装配置指南
Aug 25 Python
python实现ROA算子边缘检测算法
Apr 05 Python
教你使用Pandas直接核算Excel中快递费用
May 12 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
Dec 24 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的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
php使用GD实现颜色渐变实例
2015/06/02 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
英国高街电视:High Street TV
2018/05/22 全球购物
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
董事长助理岗位职责
2014/02/18 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
行政监察建议书
2014/05/19 职场文书
个人总结与自我评价
2014/09/18 职场文书
python装饰器代码解析
2022/03/23 Python