Python 关于图片处理PIL
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相关推荐
- python自带的PIL库扩展图片大小给图片加上文字描述
利用python自带的PIL库扩展图片大小给图片加上文字描述.大多都是库函数调用,只是给定图片宽度后计算文字所需行数的代码需要写. 代码比较丑,but it works. #!/usr/bin/env ...
- python实现图片转化技术(UI:TK Core:PIL)
有很多时候,我们都需要转化图片格式,所以我们来使用python制作一个转化工具 [懒懒的朋友可以直接划到文章末尾复制全部代码,别忘记点赞,收藏,关注!] 效果: 可以看到,支持转化为四种格式,png, ...
- python读取图片文件名_python图像处理基础之PIL和opencv
python图像处理基础 pip install pillow 安装PIL库 1.读取图片 from PIL import Image import numpy as np #打开图片 img = I ...
- Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed...
近期在用Python开发自己的博客.须要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,由于我用的是windows. 所以在安装好pil之后就開始写,就依照题目所说出现了Th ...
- cv2 和 matplotlib.pyplot 和 PIL.Image 读取图片方式对比【Python读取图片】
文章目录 import matplotlib.pyplot as plt 和 cv2 读取图像对比 PIL 和 cv2 读取图片对比 mxnet.image.imread 读取图片 PIL 和 tor ...
- python(opencv2、PIL)将图片透明背景转换成白色背景的两种方法
对于急需要用的朋友可以直接用下面的代码 opencv2实现 import cv2def alpha2white_opencv2(img):sp=img.shapewidth=sp[0]height=s ...
- python爬图片_网络爬虫经验:反爬和反反爬
我想很多人入门python是图片爬虫,就是HTTP请求,保存一下图片,用python实现非常快.网上很多爬虫的教程就讲到这里,实际上很单一,看了跟没看没什么区别,都是找一下网页的规律,然后Beauti ...
- python 多种图片数据格式互转
python 多种图片数据格式 numpy.bytes.base64 互转 import cv2 import numpy as np import base64 from PIL import Im ...
- python界面图片-python如何实现读取并显示图片(不需要图形界面)
在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...
最新文章
- 单机 搭建kafka集群 本地_单机快速搭建多节点kafka集群
- 如何通过Java代码判断当前的环境是否支持JRE 9
- 2016年4月20日作业
- linux mint更换mac,在Ubuntu、Linux Mint上安装Mac OS X主题
- MFC开发-待整理 --VS调试 不会命中断点,源代码与原始版本不同的解决办法
- oracle完全卸载重装历程
- 20210325:力扣递归,回溯类型题目合集
- 《Java和Android开发学习指南(第2版)》——第1章,第1.5节本章小结
- 面试必掌握的redis的问题
- zen服务器芯片,Intel颤抖!AMD 32核心终极版Zen亮相:媲美人脑
- cmd查看计算机用户名和密码,win7系统如何使用cmd命令开启wifi并查看已连接用户...
- 对象关系Lookup与Master-Detail
- java泛型返回值 <T>T 和T的区别
- hdu5956, The Elder (树型dp, 斜率优化)
- win10内置录音机无法录制网页视频声音
- Linux: meld 对比工具的安装和使用
- 热烈祝贺联诚发内容科技落户人民网(厦门)内容科技产业园
- 四种主要网络IO虚拟化模型
- 《Code Complete》之个人性格
- 什么是java线程_Java多线程是什么意思?