zoukankan      html  css  js  c++  java
  • 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")
    复制代码
     
     
     
  • 相关阅读:
    指针应用-----链表一
    指针(五)
    指针(四)
    指针(三)
    指针(二)
    指针(一)
    [代码应用]javaSE程序递归删除文件夹下的.bak文件程序源代码
    [ExtJS5学习笔记]第十八节 Extjs5的panel的dockeditems属性配置toolbar
    [ExtJS5学习笔记]第十七节 Extjs5的panel组件增加accodion成为折叠导航栏
    [ExtJS5学习笔记]第十六节 Extjs5使用panel新增的ViewModel属性绑定数据
  • 原文地址:https://www.cnblogs.com/zhengzhican/p/10686553.html
Copyright © 2011-2022 走看看