Python PIL

PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储、显示和处理,能够处理几乎所有格式的图片。

一、PIL库简介

1. PIL库主要有2个方面的功能:

(1) 图像归档:对图像进行批处理、生产图像预览、图像格式转换等。

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

二、安装库函数

pip install pillow

三、使用库函数Image类 —— 基本图像处理

1. 调用Image类

from PIL import Image

2. Image类关于图像读取与创建

方法

说明

Image.open(filename)

加载图像文件

Image.new(mode,size,color)

根据给定参数创建新图像

Image.open(StringIO.StringIO(buffer))

从字符串中获取图像

Image.frombytes(mode,size,color)

根据像素点创建新图像

Image.verify()

对图像完整性进行检查,返回异常

3. Image类的常用属性

方法

说明

Image.format

图像格式或来源,若图像不是从文件读取,返回None

Image.mode

图像的色彩模式,’L’为灰度模式,’RGB’为真彩色图像,’C(青)M(品红)Y(黄)K(黑)’为出版图像

Image.size

图像的宽度和高度,单位是像素(px),返回值为元组类型

Image.palette

调色板属性,返回ImagePalette类型

4.Image类的序列图像操作方法

方法

说明

Image.seek(frame)

跳转并返回图像中的指定帧

Image.tell()

返回当前帧的序号

5.Image类的图像旋转和缩放方法

方法

说明

Image.resize(size)

返回按size大小调整图像的副本

Image.rotate(angle)

返回按angle角度旋转图像的副本

6.Image类的图像转换和保存方法

方法

说明

Image.save(filename,format)

将图像保存为filename文件名,format格式

Image.convert(mode)

将图像转换为mode模式

Image.thumbnail(size)

创建图像的缩略图,size是缩略图尺寸的元组

例子1

# -*- encoding:utf-8 -*-
''' 改变颜色 --- 颜色反转'''
from PIL import Image
nest = Image.open("D:\\nest.jpg")
r,g,b = nest.split() #获取原图的RGB通道的颜色值
newb = b.point(lambda i:i*1.1) #将B通道的颜色值增强
nest1 = Image.merge(nest.mode,(b,g,r))
nest1.thumbnail((400,254)) #创建缩略图
nest1.save("D:\\nest_2.jpg")

  

处理图像序列(gif图像)

函数:ImageSequence()

下面的代码可以遍历gif图像中的所有帧,并分别保存为图像。

 index = 0
while 1: try: gif.seek(index) gif.save("%d.%s" %(index,'jpg' if gif.mode == 'JPEG' else 'png')) index += 1... except EOFError: print("Reach the end of gif sequence!") break

ImageEnhance()

from PIL import Image , ImageEnhance

im = Image.open("F:\\test\\image1\\person.jpg")

brightness = ImageEnhance.Brightness(im)

im_brightness = brightness.enhance(1.5)

contrast = ImageEnhance.Contrast(im)

im_contrast = contrast.enhance(1.5)

im_brightness.save("./image1/im_brightness.jpg")

im_contrast.save("./image1/im_contrast.jpg")

ImageEnhance是PIL下的一个子类,主要用于图像增强,比如增加亮度(Brightness),增加对比度(Contrast)等。上面的代码将原来图像的亮度增加50%,将对比度也增加了50%。

接下来把图片变成素描的效果

from PIL import Image

def sketch(img, threshold):
'''
素描
param img: Image实例
param threshold: 介于0到100
'''
if threshold < 0: threshold = 0
if threshold > 100: threshold = 100 width, height = img.size
img = img.convert('L') # convert to grayscale mode
pix = img.load() # get pixel matrix for w in xrange(width):
for h in xrange(height):
if w == width-1 or h == height-1:
continue src = pix[w, h]
dst = pix[w+1, h+1] diff = abs(src - dst) if diff >= threshold:
pix[w, h] = 0
else:
pix[w, h] = 255 return img
if __name__ == "__main__":
import sys, os path = os.path.dirname(__file__) + os.sep.join(['', 'images', 'lam.jpg'])
threshold = 15 if len(sys.argv) == 2:
try:
threshold = int(sys.argv[1])
except ValueError:
path = sys.argv[1]
elif len(sys.argv) == 3:
path = sys.argv[1]
threshold = int(sys.argv[2]) img = Image.open(path)
img = sketch(img, threshold)
img.save(os.path.splitext(path)[0]+'.sketch.jpg', 'JPEG')

效果对比图。

Python之PIL库的更多相关文章

  1. 一秒钟带你走进P图世界-----(python)PIL库的使用

    python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...

  2. python之PIL库(Image模块)

    PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...

  3. Python之PIL库的运用、GIF处理

    一.PIL库简介 PIL(Python Image Library)库是Python语言的第三方库,它支持图像存储.显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.折叠以及像图片添 ...

  4. Python之PIL库的运用、GIF处理h

    一.PIL库简介 PIL(Python Image Library)库是Python语言的第三方库,它支持图像存储.显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.折叠以及像图片添 ...

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

    一.关于PIL库的学习总结 PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装.安装PIL库的方法如下,需要注意,安装库的名字是pillow. : ...

  6. python 利用PIL库进行更改图片大小的操作

    python 是可以利用PIL库进行更改图片大小的操作的,当然一般情况下是不需要的,但是在一些特殊的利用场合,是需要改变图片的灰度或是大小等的操作的,其实用python更改图片的大小还是蛮简单的,只需 ...

  7. ❤️【Python从入门到精通】(二十六)用Python的PIL库(Pillow)处理图像真的得心应手❤️

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本篇重点介绍Python处理图像的标准库PIL库,处理图像真的的很方便. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎踊跃 ...

  8. python中PIL库的使用

    API参考 打开dos窗口,安装库: pip install pillow 很明显,图片有点大,咱们缩略一下: from PIL import Image im = Image.open(" ...

  9. python利用PIL库使图片高斯模糊

    一.安装PIL PIL是Python Imaging Library简称,用于处理图片.PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能 ...

随机推荐

  1. POJ - 3278

    题目链接:http://poj.org/problem?id=3278 ac代码: #include <iostream>#include <stdio.h>#include ...

  2. ActiveMQ(4)---ActiveMQ原理分析之消息消费

    消费端消费消息的原理 我们通过上一节课的讲解,知道有两种方法可以接收消息,一种是使用同步阻塞的MessageConsumer#receive方法.另一种是使用消息监听器MessageListener. ...

  3. Python module ---- argparse

    argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行参数,程序只需定义好它要求的参数,然后argpars ...

  4. python+Django+test 测试数据库生成报错

    前提: 使用Django自带的test进行单元测试. 问题描述: 运行:python manage.py test,报错,出现数据库乱码的现象,报错如下: Creating test database ...

  5. .NET Core 跨平台发布Linux和OSX

    跨平台发布 简单新建一个项目. mkdir dotnethello cd dotnethello dotnet new dotnet new之后 修改project.json 如下: { " ...

  6. java 与 CDH kafka集成

    本文主要是通过在网上找到的例子进行演示: 一.说明      开发环境如下:      idea + jdk 1.8 + maven      maven 中引用的架包如下: 二. 生产者 impor ...

  7. Java框架spring 学习笔记(三):Bean 的生命周期

    当一个 bean 被实例化时,它可能需要执行一些初始化使它转换成可用状态.当bean不再需要,并且从容器中移除时,需要做一些清除工作.为了定义安装和拆卸一个 bean,我们只要声明init-metho ...

  8. scrapy 之自定义命令运行所有爬虫文件

    1.在spider文件夹同级目录创建commands python包 2.在包下创建command.py文件 3.从scrapy.commands包下引入ScrapyCommand 4.创建一个类,继 ...

  9. pl/sql developer 问题总结

    问题1,出现NLS_LANG和字符集(Character set)问题 安装完PL/SQL后打开,遇到如图问题. 原因:这是因为系统没有设置NLS_LANG系统变量. 解决方法:有两种方式查看. 1. ...

  10. C#给checkboxList设置js选中事件

    C#: for (int i = 0; i < this.CheckBoxList1.Items.Count; i++)         {             this.CheckBoxL ...