python图像处理库 PIL库学习笔记
图像归档:对图像进行批处理、生成图像预览、图像格式转换等;
图像处理:图像基本处理、像素处理、颜色处理等。
一、PIL库Image类
(1)Image图片读取和创建方法
方法 |
描述 |
Image.open(filename) |
根据参数加载图像文件 |
Image.new(mode, size, color) |
根据给定参数创建一个新的图像 |
Image.open(StringIO.StringIO(buffer)) |
从字符串中获取图像 |
Image.frombytes(mode, size, data) |
根据像素点data创建图像 |
Image.verify() |
对图像文件完整性进行检查,返回异常 |
例如要加载一个图片
from PIL import Image im = Image.open("D:\pycodes\birdnest.jpg")
(2)Image类4个处理图片的常用属性
属性 |
描述 |
Image.format |
标识图像格式或来源,如果图像不是从文件读取,值是None |
Image.mode |
图像的色彩模式,"L"灰度图像、"RGB"真彩色图像、"CMYK"出版图像 |
Image.size |
图像宽度和高度,单位是像素(px),返回值是二元元组(tuple) |
Image.palette |
调色板属性,返回一个ImagePalette类型 |
(3)Image类的图像保存和处理
方法 |
描述 |
Image.save(filename, format) |
将图像保存为filename文件名,format是图片格式 |
Image.convert(mode) |
使用不同的参数,转换图像为新的模式 |
Image.thumbnail(size) |
创建图像的缩略图,size是缩略图尺寸的二元元组 |
(4)图像的过滤和增强
方法表示 |
描述 |
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 |
图像的锐化效果 |
#生成略缩图
1 from PIL import Image 2 im = Image.open("C:\pic.2.jpg") 3 im.thumbnail((128, 128)) 4 im.save("picn","JPEG")
# 图像颜色交换
from PIL import Image im = Image.open("C:\pic.2.jpg") r, g, b = im.split() om = Image.merge("RGB", (b, r, g )) om.save('picn1.jpg')
#提取图片轮廓
from PIL import Image from PIL import ImageFilter im = Image.open("C:\pic.2.jpg") om = im.filter(ImageFilter.CONTOUR) om.save("picns2.jpg")
#图片浮雕处理
1 from PIL import Image 2 3 from PIL import ImageFilter 4 5 im = Image.open("C:\pic.2.jpg") 6 7 om = im.filter(ImageFilter.EMBOSS) 8 9 om.save("picns3.jpg")
#提取GIF图像每一帧
from PIL import Image im = Image.open('Ada+.gif') # 读入一个GIF文件 try: im.save('picf{:02d}.png'.format(im.tell())) while True: im.seek(im.tell()+1) im.save('picf{:02d}.png'.format(im.tell())) except: print("处理结束")
(为什么粘贴到这里,gif就不动了呀??)
#图片的锐化处理
1 from PIL import Image 2 from PIL import ImageEnhance 3 im = Image.open("C:\pic.2.jpg") 4 om = ImageEnhance.Sharpness(im) 5 om.enhance(200).save('picttt.jpg')
#图像的美白
1 from PIL import Image 2 from PIL import ImageEnhance 3 im = Image.open('C:\pic.2.jpg') 4 om = ImageEnhance.Brightness(im) 5 om.enhance(1.4).save('pichh.jpg')