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 , ImageEnhanceim = 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 Imagedef sketch(img, threshold):'''素描param img: Image实例param threshold: 介于0到100'''if threshold < 0: threshold = 0if threshold > 100: threshold = 100width, height = img.sizeimg = img.convert('L') # convert to grayscale modepix = img.load() # get pixel matrixfor w in xrange(width):for h in xrange(height):if w == width-1 or h == height-1:continuesrc = pix[w, h]dst = pix[w+1, h+1]diff = abs(src - dst)if diff >= threshold:pix[w, h] = 0else:pix[w, h] = 255return img
if __name__ == "__main__":import sys, ospath = os.path.dirname(__file__) + os.sep.join(['', 'images', 'lam.jpg'])threshold = 15if 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')

效果对比图。

转载于:https://www.cnblogs.com/gyy-15768200938/p/10686756.html

Python之PIL库相关推荐

  1. db2top详细使用方法_Py之PIL:Python的PIL库的简介、安装、使用方法详细攻略

    Py之PIL:Python的PIL库的简介.安装.使用方法详细攻略 目录 PIL库的简介 PIL库的安装 PIL库的用方法 1.几何图形的绘制与文字的绘制 2.绘制图形的各种案例 PIL库的简介 PI ...

  2. Python之PIL之绘图:基于Python的PIL库绘制各种图形、添加文字等

    Python之PIL之绘图:基于Python的PIL库绘制各种图形.添加文字等 目录 一.绘制各种形状各种案例 1.绘制矩形 2.绘制圆形.弧线形

  3. Py之PIL:Python的PIL库的简介、安装、使用方法详细攻略

    Py之PIL:Python的PIL库的简介.安装.使用方法详细攻略 目录 PIL库的简介 PIL库的安装 PIL库的用方法 1.几何图形的绘制与文字的绘制 2.绘制图形的各种案例 PIL库的简介 PI ...

  4. Python Pillow(PIL)库的用法介绍(二)

    Python Pillow(PIL)库的用法介绍(二) 在上一篇文章中介绍了Pillow库的一些基本用法,参考:https://blog.csdn.net/weixin_43790276/articl ...

  5. Python:PIL库中getpixel()-方法的使用

    Python:PIL库中getpixel()方法的使用 getpixel()函数是用来获取图像中某一点的像素的RGB颜色值,getpixel的参数是一个像素点的坐标.对于图象的不同的模式,getpix ...

  6. python的PIL库部分模块函数

    python的PIL库部分模块函数 1.Image.open("文件路径") 打开图片文件 1.image.convert(mode) 将其转换为某模式 2.Image.new(模 ...

  7. 新发的日常小实验——使用python的PIL库批量修改图片尺寸,确保宽和高是4的倍数(Unity、PIL、Pillow、压缩)

    文章目录 一.问题:图片导入Unity被调整成2的N次方 二.设置不转换成2的N次方 三.使用ETC压缩格式,图片宽高必须是4的倍数 四.使用python的PIL库批量修改图片尺寸,确保宽和高是4的倍 ...

  8. 使用python中PIL库进行切图时候出现了图片全黑

    使用PIL的Image切图时候图片全黑 不知道大家有没有遇见这样得问题,使用python中PIL库进行切图时候出现了图片全黑得现象 今天写了个切图得代码,但是得到得图片是全黑的,像这样的情况: 不知道 ...

  9. 通过Python的PIL库给图片添加马赛克

    文章目录 前言 一.Pillow是什么? 二.安装PIL库 三.查看PIL库版本 四.使用方法 1.引入库 2.定义图片路径 3.打开需要打马赛克的图片 4.获取图片尺寸 5.创建一个新的图片对象 6 ...

  10. python 用PIL库缩放图片并保存

    python 用PIL库缩放图片并保存 PIL库安装 pip install pillow 单个图片缩放 from PIL import Imageimagepath = r'.\img\number ...

最新文章

  1. From 《visual C++ 6.0开发工具与调试》
  2. linux安装zookeeper+使用命令
  3. 倒序存放数组java_java实现数组中的逆序对
  4. 虚拟机四种网络连接模式比较
  5. 只靠可视化大屏,做不了数字化,数据总监总结3点,你做到了几个
  6. php 下拉菜单 不提交 选中的值,在html中怎样可以做到下拉菜单提交后保留选中值不返回默认值...
  7. [NOIP2013] 花匠
  8. Firefox6 使用 firebug 解决方法 以及迅雷(thunder)插件报错
  9. linkedlist 最难题 Insert into a Cyclic Sorted List
  10. python怎么提取百度首页链接_python如何获取百度搜索结果的真实URL
  11. 安装qt qmake assistant 错误:could not find a Qt installation of ''
  12. 渗透测试工程师的Linux学习之路
  13. 【3D建模制作技巧分享】Zbrush如何将图片转浮雕模型
  14. Class 'app\index\controller\News' not found 解决方案
  15. node的HTPP请求
  16. 【Spring Boot】使用JDBC 获取相关的数据
  17. js简易版歌单播放,可切换下一首
  18. Python调用动态链接库DLL文件
  19. 针对学校出现猪流感而做的一个简单的小软件(更新版)
  20. 用HTML5实现手机摇一摇的功能并配上声音

热门文章

  1. 2015 10月21日 工作计划与执行
  2. step5 . day2 网络编程 基于TPC协议的网络编程流程及API
  3. 背包类树形DP 选课题解
  4. 学习python第十天
  5. ACM组队训练记录(Grooming)
  6. 给vmstat加上时间戳
  7. first-软件工程
  8. 20135320赵瀚青LINUX第四章读书笔记
  9. Tomcat无法shutdown进程问题解决办法
  10. getchar()和getch()的区别