1.1 PIL:Python图像处理类库
from PIL import Image
img = Image.open('Husky.jpg')
# 看看这货长什么样子
img

# 看看它的大小
print('The size of this image is:{0}'.format(img.size))
The size of this image is:(1588, 1257)
# 这货太大了,把它变得小巧些
img.thumbnail((700, 700))
img

真正改变大小的方法应该是resize(),下面介绍下thumbnail和resize的异同
- 相同点:两者都接受元组(宽,高)作为新图片的大小;
- 不同点:
- thumbnail是快速生成缩略图的方法,img.thumbnail()直接在img上操作,不可逆;new_img = img.resize(),resize方法会生成一个新的PIL对象并返回
- thumbnail生成缩略图是按比例缩放的;而resize是完全按照给定的元组的大小缩放
- thumbnail传入的元组不可超过当前图片的大小
# 验证第3点
print("执行thumbnail方法之前img的大小为:{0}".format(img.size))
# 输入的元组大小大于(700, 554)
img.thumbnail((1000, 1000))
print("执行thumbnail方法之后img的大小为:{0}".format(img.size))
# 如果输入元组的大小小于(700, 554),验证第2点
img.thumbnail((500, 500))
print("再次缩放后img的大小为:{0}".format(img.size))
执行thumbnail方法之前img的大小为:(700, 554)
执行thumbnail方法之后img的大小为:(700, 554)
再次缩放后img的大小为:(500, 395)
# 用resize图片变为原来的大小,但是可以看见清晰度比原来低了好几档
img.resize((1588, 1257))

img

# 得到灰度图
img_grey = img.convert('L')
img_grey

# 使用crop()方法可以裁剪指定区域
box = (100, 30, 490, 395)
region = img_grey.crop(box)
# 看起来更帅了,box是一个四元组。图片以左上角为(0,0)点,box中的4个数字分别代表左上角的x值,左上角的y值,右下角的x值,右下角的y值
region

# 不能让它这么帅,rotate方法可以让其逆时针旋转一个角度
rotate_img = region.rotate(90)
rotate_img

# 对原本的图片操作,将旋转的部分粘贴回原图片
img.paste(rotate_img, box)
# 可以看见图片中有些黑色部分,那是因为box截取的区域并不是一个正方形,宽大于高,旋转过来时原来的高度自然匹配不上原来的宽度
img

1.1 PIL:Python图像处理类库的更多相关文章
- Python图像处理库(1)
转自:http://www.ituring.com.cn/tupubarticle/2024 第 1 章 基本的图像操作和处理 本章讲解操作和处理图像的基础知识,将通过大量示例介绍处理图像所需的 Py ...
- python图像处理:pytesseract和PIL
大概介绍下相关模块的概念: Python-tesseract 是光学字符识别Tesseract OCR引擎的Python封装类.能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF等) ...
- Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
Python图像处理库:PIL中Image,ImageDraw等基本模块介绍 标签: 图像处理PILPYTHON 2016-08-19 10:58 461人阅读 评论(0) 收藏 举报 分类: 其他 ...
- Python图像处理库PIL中图像格式转换(一)
在数字图像处理中,针对不同的图像格式有其特定的处理算法. 所以,在做图像处理之前,我们须要考虑清楚自己要基于哪种格式的图像进行算法设计及事实上现.本文基于这个需求.使用python中的图像处理库PIL ...
- < python PIL - 批量图像处理 - 生成自定义大小图像 >
< python PIL - 批量图像处理 - 生成自定义大小图像 > 直接用python自带的PIL图像库,对一个文件夹下所有jpg/png的图像进行自定义像素变换 from PIL i ...
- < python PIL - 批量图像处理 - RGB图像生成灰度图像 >
< python PIL - 批量图像处理 - RGB图像生成灰度图像 > 直接用python自带的PIL图像库,将一个文件夹下所有jpg/png的RGB图像转换成灰度/黑白图像 from ...
- [转]python 常用类库!
Python学习 On this page... (hide) 1. 基本安装 2. Python文档 2.1 推荐资源站点 2.2 其他参考资料 2.3 代码示例 3. 常用工具 3.1 Pytho ...
- Python图像处理库:Pillow 初级教程
Python图像处理库:Pillow 初级教程 2014-09-14 翻译 http://pillow.readthedocs.org/en/latest/handbook/tutorial.html ...
- Python图像处理之验证码识别
在上一篇博客Python图像处理之图片文字识别(OCR)中我们介绍了在Python中如何利用Tesseract软件来识别图片中的英文与中文,本文将具体介绍如何在Python中利用Tesseract ...
随机推荐
- 锁——Java同步的基本思想
翻译人员: 铁锚 翻译时间: 2013年11月13日 原文链接: Monitors – The Basic Idea of Java synchronization 如果你上过操作系统课程,你就知道 ...
- 前端开发 - jQuery
本节内容 一.jQuery概述 二.选择器 三.操作DOM 四.修改DOM结构 五.事件 六.动画 七.AJAX(待续) 八.扩展(待续) 一.jQuery概述 jQuery 是一个 JavaScri ...
- 从0开始学Python---01
1.开始 Vim test.py #!/usr/bin/python print "hello,world!"; chmod +x test.py ./test.py 2.基本知 ...
- 验证FluentValidation
FluentValidation https://www.xcode.me/code/fluentvalidation-dot-net-library 这里写得很详细了
- [C++基础]队列<queue>中的常用函数
在C++中只要#include<queue>即可使用队列类,其中在面试或笔试中常用的成员函数如下(按照最常用到不常用的顺序) 1. push 2. pop 3. size 4. empty ...
- 【CJOJ2616】 【HZOI 2016】偏序 I(cdq分治,树状数组)
传送门 CJOJ Solution 考虑这是一个四维偏序对吧. 直接cdq套在一起,然后这题有两种实现方法(树状数组的更快!) 代码实现1(cdq+cdq+cdq) /* mail: mleautom ...
- 如何在Notepad ++中每两行合并
\n 新行 \r 行首 [^\n]+ 是排除\n外的任意字符 [^\r]+ 是排除\r外的任意字符 用[^\n]或[^\r]都不行..老是匹配到空的东西..原来是这么一回事..用[^\n\r]+就行了 ...
- 【文文殿下】[AH2017/HNOI2017]礼物
题解 二项式展开,然后暴力FFT就好了.会发现有一个卷积与c无关,我们找一个最小的项就行了. Tips:记得要倍长其中一个数组,防止FFT出锅 代码如下: #include<bits/stdc+ ...
- 深入字节码理解invokeSuper无限循环的原因
来一段简单的cglib代码 public class SampleClass { public void test(){ System.out.println("hello world&qu ...
- Redis---Hash(字典)
1. 概述 Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿). ...