PIL库的学习

PIL库概述

  PIL库可以完成图像归档和图像处理两方面功能需求:

       图像归档:对图像进行批处理、生成图像预览、图像格式转换等;

       图像处理:图像基本处理、像素处理、颜色处理等。

基本方法:①Image.open(filename):根据参数加载图像文件。可填入图像的具体的储存位置。②<图像变量>.save(‘储存地址‘):储存处理后的图像。

1、Image类。【任何一个图像文件都可以用Image对象表示Image类的图像读取和创建方法】

from PIL import Image

  这里只简要解析几个方法。

<1>Image.thumbnail(size):创建图像的缩略图,size是缩略图尺寸的二元元组。

实例:

1 pA = Image.open("D:\\桌面\\pytest\\景色1.jpg")       #打开
2 pA.thumbnail((128,128))                             #缩略
3 pA.save("D:\\桌面\\pytest\\景色1_TN.jpg")               #保存

   原图(1)

   缩略图

<2>Image.point(func):根据函数func功能对每个元素进行运算,返回图像副本。

<3>Image.split():提取RGB图像的每个颜色通道,返回图像副本。

<4>Image.merge(mode,bands):合并通道 ,采用mode色彩,bands是新色的色彩通道。

实例:

1 pB = Image.open("D:\\桌面\\pytest\\景色2.jpeg")      #打开
2 #改变颜色
3 r,g,b = pB.split()                              #获得RGB通道数据
4 newr = r.point(lambda i:i*1.5)                 # 将R通道颜色值变为原来的1.5倍
5 newb = b.point(lambda i:i*0.8)                 # 将b通道颜色值变为原来的0.8倍
6 newpB_merge = Image.merge(pB.mode, (newr, g, newb))     # 将3个通道合形成新图像
7 newpB_merge.save("D:\\桌面\\pytest\\景色2_Merge.jpeg")

   原图 (2)

   改变颜色后

2、ImageFilter类和ImageEnhance类。【PIL库的ImageFilter类和ImageEnhance类提供了过滤图像和增强图像的方法】ps:此处只列举ImageFilter的几个方法。

from PIL import ImageFilter

可利用Image类的filter()方法使用ImageFilter类,如:Image.filter(ImageFilter.fuction)

<1>ImageFilter.CONTOUR:图像的轮廓效果。

实例:(此处使用原图(2))

1 from PIL import Image
2 from PIL import ImageFilter
3
4 pB = Image.open("D:\\桌面\\pytest\\景色2.jpeg")      #打开
5
6 #轮廓
7 newpB_contour = pB.filter(ImageFilter.CONTOUR)
8 newpB_contour.save("D:\\桌面\\pytest\\景色2_Contour.jpg")

  轮廓图

<2>ImageFilter.EMBOSS:图像的浮雕效果。

实例:(此处使用原图(1))

1 from PIL import Image
2 from PIL import ImageFilter
3 pA = Image.open("D:\\桌面\\pytest\\景色1.jpeg")      #打开
4
5 #浮雕
6 newpA_emboss = pA.filter(ImageFilter.EMBOSS)
7 newpA_emboss.save("D:\\桌面\\pytest\\景色1_Emboss.jpg")

     浮雕图

————————————————————--------------------------------------------------——————————————————————-

图像字符化绘制

 1 from PIL import Image
 2 ascii_char  = list(‘"$%_&WM#*oahkbdpqwmZO0QLCJUYXzcvunxr 3 jft/\|()1{}[]?-/[email protected]<>i!;:,\^`.‘)
 4 def get_char(r, b, g, alpha=256):
 5     if alpha == 0:
 6         return ‘ ‘
 7     gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)   #灰色rbg
 8     unit = 256 / len(ascii_char)
 9     return ascii_char[int(gray//unit)]
10 def main():
11     im = Image.open(‘D:\\桌面\\pytest\\picture7.png‘)
12     WIDTH, HEIGHT = 500,300
13     im = im.resize((WIDTH, HEIGHT))
14     txt = ""
15     for i in range(HEIGHT):
16         for j in range(WIDTH):
17             txt += get_char(*im.getpixel((j, i)))  #getpixel函数是用来获取图像中某一点的像素的RGB颜色值,getpixel的参数是一个坐标点。对于图象的不同的模式,getpixel函数返回的值有所不同。
18         txt += ‘\n‘
19     fo = open("D:\\桌面\\pytest\\pic_char.txt","w")
20     fo.write(txt)
21     fo.close()
22 main()

      

提取GIF各帧图像

1 from PIL import Image
2 im = Image.open(‘D:\\桌面\\pytest\\bekilled.gif‘)      # 读入一个GIF文件
3 try:
4     im.save(‘D:\\桌面\\pytest\\picframe{:02d}.png‘.format(im.tell()))
5     while True:
6         im.seek(im.tell()+1)   #文件seek()的运用。改变当前文件操作指针的位置,offset的值:0:文件开头; 1: 当前位置; 2: 文件结尾
7         im.save(‘D:\\桌面\\pytest\\picframe{:02d}.png‘.format(im.tell()))
8 except:
9     print("处理结束")

(gif文件来源百度)

   

自制生成GIF

小编将上面处理过的一些图像生成GIF,为此将图像统一存放在一个文件夹里(并重命名),且都转化为png格式。

1 from PIL import Image
2 imgs = []
3 for i in range(1,12):
4     pic_name = ‘D:\\桌面\\素材\\picture{}.png‘.format(i)
5     picture = Image.open(pic_name)
6     temp = picture.resize((400,250))
7     imgs.append(temp)
8
9 imgs[0].save(‘D:\\桌面\\素材\\合成.gif‘,save_all=True, append_images=imgs, duration=0.1)

【后记:若您在阅读过程中发现问题,请您斧正,小编将不胜感激。】

原文地址:https://www.cnblogs.com/nicefurmine/p/12695390.html

时间: 2024-08-02 06:27:38

PIL库的学习的相关文章

Python关于PIL库的学习总结与成果展示

一.关于PIL库的学习总结 PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装.安装PIL库的方法如下,需要注意,安装库的名字是pillow. :\>pip install pillow      #或者    pip3 install pillow PIL库支持图像储存.显示和处理,他能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.叠加以及向图像添加线条.图像和文字等操作. PIL库主要可以实现图像归档和图像处理两方面功能需求. (1

有关Python的PIL库的学习体会和实例

今天给各位介绍的是有关PIL库的学习. 首先介绍一下PIL库,总所周知,PIL库是一个功能强大的图片处理框架. 话不多说,下面就让各位看一下我的成果吧,主要是对图片的缩略图,改变颜色,轮廓,浮雕操作,以及提取GIF图像的每一帧. 第一,我举例出一个图的效果 首先是缩略图 以下是代码 以下是效果 原图是 再说改变颜色 上边是效果,具体代码如下 这个是图片颜色变换的代码 至于轮廓 效果如下图 浮雕操作和轮廓操作类似,只不过是将原来的‘ImageFilter.CONTOUR’更改为‘ImageFilt

PIL库学习及运用

了解PIL以及安装. 1. PIL库主要有2个方面的功能: (1) 图像归档:对图像进行批处理.生产图像预览.图像格式转换等. (2) 图像处理:图像基本处理.像素处理.颜色处理等. 安装PIL在cmd中输入 pip install pillow 就可以在线安装PIL 2对于PIL的简单运用. 使用PIL来对图片进行处理 ''' 轮廓效果 --- 素描 ''' from PIL import Image from PIL import ImageFilter square = Image.ope

python,使用PIL库对图片进行操作

在做识别验证码时,需要对验证码图片进行一些处理,所以就学习了一下PIL的知识,下面是我总结的一些常用方法. 注明:图片的操作都需要Image库,所以要使用import Image导入库 1.打开图片 import Imageimg=Image.open("code.jpg") 注:有些图片名称是包含中文的,就需要在""前加上u,例:img=Image.open(u"阿布.jpg") 以下各个操作均是基于原图进行的修改,原图为: 2.展示图片 im

Python 之 使用 PIL 库做图像处理

Python 之 使用 PIL 库做图像处理 1. 简介. 图像处理是一门应用非常广的技术,而拥有非常丰富第三方扩展库的 Python 当然不会错过这一门盛宴.PIL (Python Imaging Library)是 Python 中最常用的图像处理库,目前版本为 1.1.7,我们可以 在这里 下载学习和查找资料. Image 类是 PIL 库中一个非常重要的类,通过这个类来创建实例可以有直接载入图像文件,读取处理过的图像和通过抓取的方法得到的图像这三种方法. 2. 使用. 导入 Image

如何在windows下安装Python的PIL库

最近在学习廖大大的Python教程,今天正好学习到“安装第三方模块”这一章节,第一个任务就是安装“PIL”库. PIL库是个啥?廖大大的告诉我们: Python Imaging Library,这是Python下非常强大的处理图像的工具库.一般来说,第三方库都会在Python官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如Python Imaging Library的名称叫PIL,因此,安装Python Imaging L

PIL库的简单操作

灰度图和RGB图 灰度图是一个二维数组,每个值都表示这个像素点的灰度值(0到255之间的一个值),数组的维度(shape)则表示这个图片的长宽(单位像素px),先看个例子 from PIL import Image import numpy as np data = np.ones((16, 16), dtype=np.uint8) # 创建一个全1的数组 data = data * 255 # 数组所有元素乘以255 print(data) data[4:12, 8] = 0 # 将中间的一些

记一次python安装PIL库所遇到的事

自学python,要用到PIL这个很出名的库,那就安装呗 大家都知道python下,用easy_install命令安装特简单,命令如下: 好吧,这样我们安装完了,我们再去%PYTHON_HOME%\Lib\site-packages文件夹下看看是否已经有对用的库文件了 好的,如上图所示,也已经有了,对了,上面的PIL包是我另外安装的,如果你只是用easy_install命令安装的话,site-packages文件夹下面是不会有PIL这个文件夹的, 而PIL文件夹是我从网下载的安装程序,地址是ht

安装PIL库

之前在github上看到猫猫的攻破12306代码 git clone之后尝试在本地运行 发现缺少PIL库,下载源码之后手动编译安装.失败 后来发现是缺少jpeg和zlib的支持 遂执行 brew install libjpeg brew install zlib 删掉之前安装的PIL,再安装,还是不成功 然后继续安装FREETYPE2以及LITTLECMS 这里LITTLECMS貌似要装1.9版本的 之后执行selftest.py测试,发现所有依赖库都安装完了 再次执行python setup.