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中Genarator函数用法分析
Apr 08 Python
Python中的Numeric包和Numarray包使用教程
Apr 13 Python
利用Python脚本生成sitemap.xml的实现方法
Jan 31 Python
python中字符串类型json操作的注意事项
May 02 Python
python使用mysql的两种使用方式
Mar 07 Python
pygame游戏之旅 游戏中添加显示文字
Nov 20 Python
Python设计模式之工厂方法模式实例详解
Jan 18 Python
Python多线程处理实例详解【单进程/多进程】
Jan 30 Python
opencv与numpy的图像基本操作
Mar 08 Python
Python 使用 environs 库定义环境变量的方法
Feb 25 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
Sep 01 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
GD输出汉字的函数的分析
2006/10/09 PHP
php在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
Python中条件判断语句的简单使用方法
2015/08/21 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
进步之星获奖感言
2014/02/22 职场文书
家电业务员岗位职责
2014/03/10 职场文书
慰问信模板
2015/02/14 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
Python 中面向接口编程
2022/05/20 Python