python PIL.Image使用

发布时间:2019-09-13 09:28:57编辑:auto阅读(2145)

    一、 基本概念

    1. 通道
      每张图片由一个或多个通道构成
      RGB图像为例,每张图片由3个通道构成,即R通道,G通道,B通道。对于灰度图像,则只有一个通道。
      获取图像的通道数量和名称,可以由方法PIL.Image.getbands()获取,此方法返回一个字符串元组,包含每一个通道的名称

    2. 模式
      图像的模式定义了图像的类型和像素的位宽。当前支持如下模式:
      1:1位像素,表示黑和白,但是存储的时候每个像素存储为8bit。
      L:8位像素,表示黑和白。
      P:8位像素,使用调色板映射到其他模式。
      RGB:3x8位像素,为真彩色。
      RGBA:4x8位像素,有透明通道的真彩色。
      CMYK:4x8位像素,颜色分离。
      YCbCr:3x8位像素,彩色视频格式。
      I:32位整型像素。黑白图像
      F:32位浮点型像素。黑白图像

    PIL也支持一些特殊的模式,包括RGBX(有padding的真彩色)和RGBa(有自左乘alpha的真彩色)。

    可以通过mode熟悉读取图像的模式

    1. 尺寸
      通过size属性获取水平和垂直方向上的像素数

    2. 坐标系统
      PIL使用笛卡尔像素坐标系统,坐标(0,0)位于左上角。注意:坐标值表示像素的角;位于坐标(0,0)处的像素的中心实际上位于(0.5,0.5)。
      坐标经常用于二元组(x,y)。长方形则表示为四元组,前面是左上角坐标。例如,一个覆盖800x600的像素图像的长方形表示为(0,0,800,600)。
    3. 调色板
      调色板模式 ("P")使用一个颜色调色板为每个像素定义具体的颜色值
    4. 信息
      使用info属性可以为一张图片添加一些辅助信息。这个是字典对象。加载和保存图像文件时,多少信息需要处理取决于文件格式

    二、 基本方法和属性使用
    ##打开图像,返回PIL.Image对象
    from PIL import Image as Image
    image = Image.open(‘image.gpeg’)
    ##显示图像模式,模式概念见第一节基本概念
    image.mode
    ##转换模式
    image.convert(‘1’)

    ##将一个图像对象转为缩略图,图像对象将之间变为缩略图,本地图像不变。
    image.thumbnail((680,680))

    ##调整图像像素大小,其他参数可以指定过滤器
    image.resize((1000,2000))
    ##旋转图像区域,旋转角度可以为Image.ROTATE_90,Image.ROTATE_180,Image.ROTATE_270
    image.transpose(Image.ROTATE_180)
    ##旋转图像,逆时针表旋转角度
    image.rotate(45)

    ##截取图像中的像素区域,拷贝图像
    cropZone = image.crop((100,100,1000,1000))
    cropZone = image.copy()
    image.paste(cropZone,(100,100,1000,1000))

    ##获取、更改某个像素位置的值
    image.getpixel((100,100))
    image.putpixel((100,100),(0,0,0))

关键字