zoukankan      html  css  js  c++  java
  • PIL库学习笔记

    好玩图像PIL处理

    一、PIL库学习总结

    1、PIL中的模块

      Image模块、ImageChops模块、ImageCrackCode模块、ImageDraw模块、ImageEnhance模块、ImageFile模块、ImageFileIO模块、ImageFilter模块、ImageFont模块、ImageGrab模块、ImageOps模块、ImagePath模块、ImageSequence模块、ImageStat模块、ImageTk模块、ImageWin模块、PSDraw模块。最常用模块为Image模块、ImageFilter模块、ImageEnhance模块。

     

    2、Image类的解释

             Image类的图像读取和创建方法   

     方法 描述
    Image.open(filename)         根据参数加载图像文件      
    Image.new(mode,size,color) 根据给定参数创建一个新的图像
    Image.open(StringIO.StringIO(buffer)) 从字符串中获取图像
    Image.frombytes(mode,size,data) 根据像素点data创建图像
    Image.veify() 对图像文件完整性进行检查,返回异常

                                                                                                                                                                                                                              

           

               

               Image类的常用属性      

    属性 描述
    Image.format 标识图像格式或来源,如果图形不是从文件读取,值为None
    Image.mode 图形的色彩模式,"L"为灰度图像,"RGB"为真彩色图像,"CMYK"为出版图像
    Image.size 图像高度与宽度,单位是像素(px),返回值是二元元组(tuple)
    Image.palette 调色板属性,返回一个ImagePalette类型

                                                                                                                                                                                                                                                                                                                               

       

              

              Image类的序列图像操作方法

    方法 描述
    Image.seek(frame) 跳转并返回图像中的指定帧
    Image.tell() 返回当前帧的序号

         

             

              Image类的图像转换和保存方法

    方法 描述
    Image.save(filename,format) 将图像保存为filename文件名,format是图片格式
    Image.convert(mode) 使用不同的参数,转换图像为新的模式
    Image.thumbnail(size) 创建图像的缩略图,size是缩略图尺寸的二元元组

                                                                                                                                                                   

             

             Image类的图像旋转与缩放方法

    方法 描述
    Image.resize(size) 按size大小调整图像,生成副本
    Image.rotate(angle) 按angle角度旋转图像,生成副本

          

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

    方法 描述
    Image.piont(func) 根据函数func的功能对每个元素进行运算,返回图像副本
    Image.split() 提取RGB图像的每个图形通道,返回图像副本
    Image.merge(mode,bands) 合并通道,其中mode表示色彩,bands表示新的色彩通道
    Image.blend(im1,im2,alpha)

    将两幅图片im1和im2按照如下公式插值后生成新的图像:

    im1*(1.0-alpha)+im2*alpha

     

     

      引用方法: 

    1 from PIL import Image
    2 im=Image.open("D:\我的文件\Python\壁纸3.jpg")
    3 im.thumbnail((158,158))
    4 om.save("D:\我的文件\Python\壁纸5.jpg")

    3、ImageFilter类的解释

                     

                 ImageFilter类的预定义过滤方法

    方法表示 描述
    ImageFilter.BLUK 图像的模糊效果
    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 ImageFilter
    2 im=Image.open("D:\我的文件\Python\壁纸5.jpg")
    3 om=im.filter(ImageFilter.CONTOUR)
    4 om.save("D:\我的文件\Python\壁纸2.jpg")
    5 om=im.filter(ImageFilter.EMBOSS)
    6 om.save("D:\我的文件\Python\壁纸1.jpg")

    4、ImageEnance类的解释

         ImageEnhance类的图像增强和滤镜方法                                                                

                 方法           描述
    ImageEnhance.enhance(factor) 对选择的属性增强factor倍
    ImageEnhance.Color(im) 调整图像的颜色平衡
    ImageEnhance.Contrast(im) 调整图像的对比度
    ImageEnhance.Brightness(im) 调整图像的亮度
    ImageEnhance.Sharpness(im) 调整图像的锐度

      

      引用如下: 

    复制代码
    1 from PIL import Image
    2 from PIL import ImageEnhance
    3 im=Image.open("D:\我的文件\Python\壁纸4.jpg")
    4 om=ImageEnhance.Contrast(im)        #调整图像的对比度
    5 om.enhance(20).save("D:\我的文件\Python\壁纸7.jpg")
    6 om=ImageEnhance.Sharpness(im)       #调整图像的锐度
    7 om.enhance(20).save("D:\我的文件\Python\壁纸6.jpg")
    复制代码
  • 相关阅读:
    Reddit 转载 Drunk Post: Things I've learned as a Sr Engineer
    算法28 30 二叉树非递归遍历(前中后)
    C++ 子类构造函数初始化列表与基类关系
    算法31 leetcode102 二叉树的层序遍历
    C++由数组构建二叉树指针
    windows下编译源代码安装软件
    算法27 leetcode101 对称二叉树
    算法31 88. 合并两个有序数组
    c++:const修饰指针
    c++ 正则实现 千分位分割
  • 原文地址:https://www.cnblogs.com/yeluozhiqiumax/p/13197782.html
Copyright © 2011-2022 走看看