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 27 Python
python写入xml文件的方法
May 08 Python
python中requests小技巧
May 10 Python
Flask-Mail用法实例分析
Jul 21 Python
Django项目后台不挂断运行的方法
Aug 31 Python
如何运行带参数的python脚本
Nov 15 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
你可能不知道的Python 技巧小结
Jan 29 Python
python IDLE添加行号显示教程
Apr 25 Python
Pandas实现批量拆分与合并Excel的示例代码
May 30 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 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.MVC的模板标签系统(四)
2006/09/05 PHP
php中文字母数字验证码实现代码
2008/04/25 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
2018/03/22 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python random模块用法解析及简单示例
2017/12/18 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
python游戏地图最短路径求解
2019/01/16 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
光声世纪笔试题目
2012/08/25 面试题
现代化办公人员工作的自我评价
2013/10/16 职场文书
大学四年学习的自我评价分享
2013/12/09 职场文书
白岩松演讲
2014/05/21 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
统计员岗位职责
2015/02/11 职场文书
同意报考证明
2015/06/17 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python