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实现socket客户端和服务端简单示例
Feb 24 Python
Linux下Python获取IP地址的代码
Nov 30 Python
python获取局域网占带宽最大3个ip的方法
Jul 09 Python
Python随机生成数据后插入到PostgreSQL
Jul 28 Python
Python多线程实现同步的四种方式
May 02 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
python实现视频读取和转化图片
Dec 10 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
pytorch中的model.eval()和BN层的使用
May 22 Python
python在package下继续嵌套一个package
Apr 14 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脚本的10个技巧(8)
2006/10/09 PHP
来自phpguru得Php Cache类源码
2010/04/15 PHP
php调用C代码的实现方法
2014/03/11 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Python面向对象程序设计示例小结
2019/01/30 Python
如何使用python操作vmware
2019/07/27 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
大学本科生的个人自我评价
2013/12/09 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
中学生家长评语大全
2014/04/16 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
工作检讨书大全
2015/01/26 职场文书
2015年度党员个人总结
2015/02/14 职场文书
追悼会家属答谢词
2015/09/29 职场文书
python 中的@运算符使用
2021/05/26 Python