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 元组(Tuple)操作详解
Mar 11 Python
Python FTP操作类代码分享
May 13 Python
OpenCV图像颜色反转算法详解
May 13 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
Python使用贪婪算法解决问题
Oct 22 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
基于django micro搭建网站实现加水印功能
May 22 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
如何用Python和JS实现的Web SSH工具
Feb 23 Python
浅谈Python中的正则表达式
Jun 28 Python
PyTorch device与cuda.device用法
Apr 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/11/09 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
prototype1.4中文手册
2006/09/22 Javascript
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
js function定义函数使用心得
2010/04/15 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
使用Pycharm分段执行代码
2020/04/15 Python
美国最大的团购网站:Groupon
2016/07/23 全球购物
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
高中班主任评语大全
2014/04/25 职场文书
关于建议书的格式范文
2014/05/20 职场文书
女生节标语
2014/06/26 职场文书
课程设计的心得体会
2014/09/03 职场文书
承租经营合作者协议书
2014/10/01 职场文书
项目备案申请报告
2015/05/15 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书