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 ...
随机推荐
- [javascript] javascript 实现数据滚动加载
// tpl generate var tmpl = (function (cache, $) { return function (str, data) { var fn = !/\s/.test( ...
- 怎么找到与你Eclipse匹配的spring tool suite插件
在Eclipse中安装插件是很简单的,但是某些插件需要与你的Eclipse的版本对应才能用,比如spring的插件. 首先,查看你的Eclipse的版本. 从eclipse的Help菜单的About ...
- VS2017+EF+Mysql生成实体数据模型(解决闪退的坑) 版本对应才行
最近要使用VS2017+EF+Mysql,在生成实体数据模型踏过一些坑,在此做个总结. 1.先下载并安装 mysql-connector-net-6.9.10.msi 和 mysql-for-vi ...
- 【转】C#中Serializable序列化实例详解
这篇文章主要介绍了C#中Serializable序列化,以实例形式详细讲述了系列化的技术及各种序列化方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了C#中Serializable序列化.分 ...
- 201621123018《java程序设计》第12周作业总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造你的图书馆管理系统或购物车. 2.1 简述如何 ...
- [Ynoi2018]未来日记(分块)
分块神题. 看了一会儿题解,看懂了思路,然后写了两个小时,调了一个多小时,好多地方写错了. 我们考虑对序列和值域都分块.\(sum1[i][j]\) 表示前 \(i\) 个块,第 \(j\) 块值域有 ...
- 异步三部曲之promise
概述 这是我看你不知道的JavaScript(中卷)的读书笔记,供以后开发时参考,相信对其他人也有用. 例子 首先来看一个例子,如果我们要异步获取x和y,然后把他们打印出来,那么用回调可以编写代码如下 ...
- 转---移动端 h5开发相关内容总结——CSS篇
作者:伯乐在线专栏作者 - zhiqiang21 如有好文章投稿,请点击 → 这里了解详情 如需转载,发送「转载」二字查看说明 1.移动端开发视窗口的添加 h5端开发下面这段话是必须配置的 meta ...
- Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏
Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏 转载 来源:jrainlau 链接:https://segmentfault.com/a/1190000005804860 项 ...
- log4j的日志级别(ssm中log4j的配置)
log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF.FATAL.ERROR.WARN.INFO.DEBUG.TRACE. ALL. 1. ALL ...