Python PIL

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

一、PIL库简介

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

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

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

2. PIL拥有多个类,此处就其中的Image类、ImageFilter类、ImageEnhance类做简单介绍。

二、安装库函数

三、使用库函数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是缩略图尺寸的元组

# -*- 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")

7.Image类的图像像素和通道处理方法

方法

说明

Image.point(func)

根据函数func的功能对每个元素进行运算,返回图像副本

Image.split()

根据GRB图像的每个颜色通道,返回图像副本

Image.merge(mode,bands)

合成通道,其中mode为色彩,bands为新的色彩通道

Image.blend(im1,im2,alpha)

将2张图片im1和im2按照公式插值后生成新图像

公式:im1*(1.0 - alpha) + im2*alpha

四、使用库函数ImageFilter类 —— 图像过滤

1.调用ImageFilter类

from PIL import ImageFilter

2. ImageFilter类预定义图像过滤方法

方法

说明

ImageFilter.BLUR

图像的模糊效果

ImageFilter.CONTOUR

图像的轮廓效果

ImageFilter.DETAIL

图像的细节效果

ImageFilter.EDGE_ENHANCE

图像的边界加强效果

ImageFilter.EDGE_ENHANCE_MORE

图像的阈值边界加强效果

ImageFilter.EMBOSS

图像的浮雕效果

ImageFilter.FIND_EDGES

图像的边界效果

ImageFilter.SMOOTH

图像的平滑效果

ImageFilter.SMOOTH_MORE

图像的阈值平滑效果

ImageFilter.SHARPEN

图像的锐化效果

# -*- encoding:utf-8 -*-
''' 轮廓效果 --- 素描 '''
from PIL import Image
from PIL import ImageFilter
square = Image.open("D:\\square.jpg")
square1 = square.filter(ImageFilter.CONTOUR)  #选择轮廓效果
square1.save("D:\\square0.jpg")

Python 关于图片处理PIL相关推荐

  1. python自带的PIL库扩展图片大小给图片加上文字描述

    利用python自带的PIL库扩展图片大小给图片加上文字描述.大多都是库函数调用,只是给定图片宽度后计算文字所需行数的代码需要写. 代码比较丑,but it works. #!/usr/bin/env ...

  2. python实现图片转化技术(UI:TK Core:PIL)

    有很多时候,我们都需要转化图片格式,所以我们来使用python制作一个转化工具 [懒懒的朋友可以直接划到文章末尾复制全部代码,别忘记点赞,收藏,关注!] 效果: 可以看到,支持转化为四种格式,png, ...

  3. python读取图片文件名_python图像处理基础之PIL和opencv

    python图像处理基础 pip install pillow 安装PIL库 1.读取图片 from PIL import Image import numpy as np #打开图片 img = I ...

  4. Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed...

    近期在用Python开发自己的博客.须要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,由于我用的是windows. 所以在安装好pil之后就開始写,就依照题目所说出现了Th ...

  5. cv2 和 matplotlib.pyplot 和 PIL.Image 读取图片方式对比【Python读取图片】

    文章目录 import matplotlib.pyplot as plt 和 cv2 读取图像对比 PIL 和 cv2 读取图片对比 mxnet.image.imread 读取图片 PIL 和 tor ...

  6. python(opencv2、PIL)将图片透明背景转换成白色背景的两种方法

    对于急需要用的朋友可以直接用下面的代码 opencv2实现 import cv2def alpha2white_opencv2(img):sp=img.shapewidth=sp[0]height=s ...

  7. python爬图片_网络爬虫经验:反爬和反反爬

    我想很多人入门python是图片爬虫,就是HTTP请求,保存一下图片,用python实现非常快.网上很多爬虫的教程就讲到这里,实际上很单一,看了跟没看没什么区别,都是找一下网页的规律,然后Beauti ...

  8. python 多种图片数据格式互转

    python 多种图片数据格式 numpy.bytes.base64 互转 import cv2 import numpy as np import base64 from PIL import Im ...

  9. python界面图片-python如何实现读取并显示图片(不需要图形界面)

    在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...

最新文章

  1. 单机 搭建kafka集群 本地_单机快速搭建多节点kafka集群
  2. 如何通过Java代码判断当前的环境是否支持JRE 9
  3. 2016年4月20日作业
  4. linux mint更换mac,在Ubuntu、Linux Mint上安装Mac OS X主题
  5. MFC开发-待整理 --VS调试 不会命中断点,源代码与原始版本不同的解决办法
  6. oracle完全卸载重装历程
  7. 20210325:力扣递归,回溯类型题目合集
  8. 《Java和Android开发学习指南(第2版)》——第1章,第1.5节本章小结
  9. 面试必掌握的redis的问题
  10. zen服务器芯片,Intel颤抖!AMD 32核心终极版Zen亮相:媲美人脑
  11. cmd查看计算机用户名和密码,win7系统如何使用cmd命令开启wifi并查看已连接用户...
  12. 对象关系Lookup与Master-Detail
  13. java泛型返回值 <T>T 和T的区别
  14. hdu5956, The Elder (树型dp, 斜率优化)
  15. win10内置录音机无法录制网页视频声音
  16. Linux: meld 对比工具的安装和使用
  17. 热烈祝贺联诚发内容科技落户人民网(厦门)内容科技产业园
  18. 四种主要网络IO虚拟化模型
  19. 《Code Complete》之个人性格
  20. 什么是java线程_Java多线程是什么意思?

热门文章

  1. iOS 最完整小说阅读器Demo
  2. flannel vxlan切换成host-gw
  3. mpvue + vuex搭建小程序详细教程
  4. 基于LMS算法的DFE判决反馈均衡器
  5. 前端css解决z-index 上层元素遮挡下层元素的方法
  6. 密码学笔记——维吉尼亚密码
  7. 中国AI觉醒 阿里王坚:云智能将成为大趋势
  8. 三部曲简史mobi_尤瓦尔简史三部曲:人类简史+未来简史+今日简史
  9. 开源免费录屏和直播软件OBS Studio教程(01)
  10. 苹果14pro Max来了,做第一批吃蟹人