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实例之wxpython中Frame使用方法
Jun 09 Python
python使用正则表达式提取网页URL的方法
May 26 Python
Python进程间通信之共享内存详解
Oct 30 Python
基于Python列表解析(列表推导式)
Jun 23 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
python小程序实现刷票功能详解
Jul 17 Python
通过python连接Linux命令行代码实例
Feb 18 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
Python制作一个仿QQ办公版的图形登录界面
Sep 22 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 Python
Python爬虫后获取重定向url的两种方法
Jan 19 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设计模式 Facade(外观模式)
2011/06/26 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
举例讲解Python中的list列表数据结构用法
2016/03/12 Python
python读取文件名并改名字的实例
2019/01/07 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
Python如何存储数据到json文件
2020/03/09 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
Python自省及反射原理实例详解
2020/07/06 Python
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
应届大学生简历中的自我评价
2014/01/15 职场文书
本科应届生求职信
2014/08/05 职场文书
重阳节标语大全
2014/10/07 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
关于MySQL中的 like操作符详情
2021/11/17 MySQL
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python