PIL库的总结及运用
PIL库的总结:(以代码形式)
#date: 2018/11/15
from PIL import Image,ImageFilter,ImageDraw,ImageFont #####除了缩略图的方法,其他方法都是返回值,需要变量来接收
img = Image.open('2.jpg')
#img.show() #展示图片
# print(img.size[0],img.size[1]) #在图片中添加文字
# draw = ImageDraw.Draw(img)
# ttFont = ImageFont.truetype ("C:/Users/admin/Desktop/文件/微信爬虫/simhei.ttf", 60)
# draw.text((img.size[0]/2,img.size[1]/2),text='你好',font=ttFont,fill=(255,0,0))
# img.show()
# new_image = img.resize((1080,800),resample = 4) #改变图片大小, 参数含义,默认NEAREST最近邻(分割常用),分类常用BILINEAR双线性,BICUBIC立方
# new_image.show() #展示改变后的图片
# im = Image.new('RGB',(128,128),color=700) #新建一张大小为128*128的图片,color为颜色参数(默认为黑色)
# im.show()
# img_1 = img.convert('L') #将图片改变为灰色,参数'L','F','I'都是灰色,一般用L
# img_2 = img.convert('1') #参数 1 也是灰度,会加模糊网格滤镜
# img_2.show()
# img_1.show()
# img.thumbnail((150,130)) #缩略图,与resize功能类似 重要!@resize需要重新定义新图,thumbnail不用
# img.show()
# img.thumbnail((640,400)) # rotate 逆时针改变图方向
# im = img.rotate(315)
# im.show()
#img_new = img.filter(ImageFilter.BLUR) #使图片变模糊
#img_new = img.filter(ImageFilter.DETAIL) #使图片细节更突出
#img_new = img.filter(ImageFilter.CONTOUR) #使图片只有轮廓
#img_new = img.filter(ImageFilter.EDGE_ENHANCE) #使图像整体颜色更深 有点油画的感觉
#img_new = img.filter(ImageFilter.EDGE_ENHANCE_MORE) #上一个加强版
#img_new = img.filter(ImageFilter.EMBOSS) #使图片石雕化,就是石膏一样的图片
#img_new = img.filter(ImageFilter.FIND_EDGES) #使图片黑色化,只剩轮廓
#img_new = img.filter(ImageFilter.SMOOTH_MORE) #使图片平滑
#img_new.show()
缩略图代码:
from PIL import Image
img = Image.open('D:\\莲花.jpg')
img = img.resize((100, 128), Image.ANTIALIAS)
img.save('莲花_small.jpg')
此代码将缩略图存放在与程序同一级目录
原图:

缩略图:

图片颜色处理:
from PIL import Image
im= Image.open('D:\\莲花.jpg')
r,g,b=im.split()
om = Image.merge("RGB",(g,b,r))#修改颜色
om.save('莲花_color.jpg')
处理后:

轮廓,浮雕,锐化等
处理代码:
from PIL import Image
from PIL import ImageFilter
im= Image.open('D:\\莲花.jpg')
om = im.filter(ImageFilter.CONTOUR)#轮廓处理
#om = im.filter(ImageFilter.EMBOSS)#浮雕处理
#om = im.filter(ImageFilter.SHARPEN)#锐化处理
om.save('莲花_contour.jpg')
轮廓处理后:

浮雕处理后:

锐度处理后:

提取GIF图的每一帧代码:
from PIL import Image
im= Image.open('D:\\123.gif')
try:
im.save('123_{:02d}.png'.format(im.tell()))
while True:
im.seek(im.tell()+1)
im.save('123_{:02d}.png'.format(im.tell()))
except:
print("over")
原图:

每一帧:









PIL库的总结及运用的更多相关文章
- Python 之 使用 PIL 库做图像处理
http://www.cnblogs.com/way_testlife/archive/2011/04/17/2019013.html Python 之 使用 PIL 库做图像处理 1. 简介. 图像 ...
- 关于PIL库的一些概念
关于PIL库的一些概念 pil能处理的图片类型pil可以处理光栅图片(像素数据组成的的块). 通道一个图片可以包含一到多个数据通道,如果这些通道具有相同的维数和深度,Pil允许将这些通道进行叠加 模式 ...
- PIL库 (Pillow)
PIL基础 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...
- 关于python下安装PIL库遇到的问题及解决办法
关于python下安装PIL库遇到的问题及解决办法 关于python下安装PIL库遇到的问题及解决办法 :在下面这个网址下载pipllow(a replacement for PIL) www.lfd ...
- 一秒钟带你走进P图世界-----(python)PIL库的使用
python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...
- PIL库自我学习总结及应用(美白,磨皮,搞笑图片处理)
Hello!今天我们来学习一下这个神奇的图片处理的第三方函数库——PIL库 (本blog部分图片及代码来自网络) 这是一个支持图像存储.显示和处理的函数库,它能够处理几乎所有图像格式,可以完成对图像的 ...
- python之PIL库(Image模块)
PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...
- 纯代码系列:Python实现验证码图片(PIL库经典用法用法,爬虫12306思路)
现在的网页中,为了防止机器人提交表单,图片验证码是很常见的应对手段之一.这里就不详细介绍了,相信大家都遇到过. 现在就给出用Python的PIL库实现验证码图片的代码.代码中有详细注释. #!/usr ...
- 玩转PIL库
1.安装pillow库: 在cmd下,输入简单的命令: pip install pillow 即可安装pillow库. 2.PIL库的简介: 1. PIL库主要有2个方面的功能: (1) 图像归档: ...
- 用PIL库进行图像处理
一.如果系统里没有安装PIL库的,请先到命令提示符输入“pip install pillow”进行安装 二.之后就可以参考以下的代码 from PIL import Image from pylab ...
随机推荐
- 操作日志的设计小结by大熊
一.首先由同事的操作日志说起 同事做了一个这样的操作日志,他定义系统所有发的json加入这两个字段,module和msg,然后在service里面用注解@Log拦截,即可记录对应的操作日志. { mo ...
- linux 虚拟机配置固定ip
参考这边博客: https://blog.csdn.net/u014466635/article/details/80284792 但是这个有个小问题,就是没有配置dns,导致连不上公网 /etc/s ...
- 考研计算机复试(C语言复试笔试题)(精华题选)
1.以下选择中,正确的赋值语句是(C) A.a=1,b=2 B.j++ C.a=b=5; D.y=(int)x 解析:选项A.B.D都无分号 变量 = 表达式;//赋值语句是一定带分号的 int a= ...
- Android四大组件之 --- Service入门
在前面了解了什么是多线程和异步消息处理机制后,我们来看一下到底什么是Service. 1. 什么是service(service的作用)一个服务是一个具有较长生命周期但没有用户界面的程序,例如:一个正 ...
- 声明一个set集合,使用HashSet类,来保存十个字符串信息,然后通过这个集合,然后使用iterator()方法,得到一个迭代器,遍历所有的集合中所有的字符串;然后拿出所有的字符串拼接到一个StringBuffer对象中,然后输出它的长度和具体内容; 验证集合的remove()、size()、contains()、isEmpty()等
package com.lanxi.demo1_3; import java.util.HashSet; import java.util.Iterator; import java.util.Set ...
- ykit入门
init lint pack server watch 1.创建现有工程的ykit项目 在项目文件夹下 ykit init 2.lint 检查当前项目的代码质量 手动执行代码 可验证代码正误 yk ...
- python异常(概念、捕获、传递、抛出)
异常 目标 异常的概念 捕获异常 异常的传递 抛出异常 01. 异常的概念 程序在运行时,如果 Python 解释器 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是 异常 程序停止执 ...
- [Kafka] [All about it]
Overview 设计目标: 以O(1) 常数级时间复杂度的访问性能,提供消息持久化能力. 高吞吐率. 支持 kafka server 间的消息分区,及分布式消费,同时保证每个partition内部的 ...
- java集合(二)
- MySQL 把两个结果集拼接到一起(两个结果集的列一模一样)
select * from a UNION all ( select * from b)