美文网首页
图像处理库Pillow的用法

图像处理库Pillow的用法

作者: 大龙10 | 来源:发表于2022-02-03 08:19 被阅读0次
    参考资料:脚本之家https://www.jb51.net/article/196007.htm
    
    • 1、创建一张新图片
    • 2、Image模块的常用属性
    • 3、图片的模式转换

    一、Pillow创建一张新图片

    from PIL import Image
      
    image = Image.new('RGB', (160, 90), (0, 0, 255))
    image.show()
    

    结果:


    • new(mode, size, color=0):
      创建一张图片(画布),用于绘图,有3个参数。

    • mode, 图片的模式,
      如“RGB”(red,green,blue三原色的缩写,表示真彩色图像)、“L”(灰度,黑白图像)等。

    • size, 图片的大小。
      是一个长度为2的元组(width, height),表示的是像素大小。

    • color, 图片的颜色,默认值为0表示黑色。
      可以传入长度为3的元组表示颜色,也可以传入颜色的十六进制,在版本1.1.4后,还可以直接传入颜色的英文单词,如上面代码中的(0, 0, 255)可以换成‘#0000FF'或‘blue',都是表示蓝色。

    二、Image模块的常用属性

    from PIL import Image
      
    image = Image.open("santa.jpg")
    print('width: ', image.width)
    print('height: ', image.height)
    print('size: ', image.size)
    print('mode: ', image.mode)
    print('format: ', image.format)
    print('category: ', image.category)
    print('readonly: ', image.readonly)
    print('info: ', image.info)
    
    • width属性表示图片的像素宽度,
    • height属性表示图片的像素高度,width和height组成了size属性,size是一个元组。
    • mode属性表示图片的模式,如RGBA,RGB,P,L等。
    • format属性表示图片的格式,格式一般与图片的后缀扩展名相关。
    • category属性表示图片的的类别。
    • readonly属性表述图片是否为只读,值为1或0,表示的是布尔值。
    • info属性表示图片的信息,是一个字典。

    三、图片的模式

    mode 描述
    1 1位像素,黑白,每字节存储一个像素
    L 8位像素,黑白
    P 8位像素,使用调色板映射到任何其他模式
    RGB 3x8位像素,真彩色
    RGBA 4x8位像素,带透明蒙版的真彩色
    CMYK 4x8位像素,分色
    YCbCr 3x8位像素,彩色视频格式
    LAB 3x8位像素,L * a * b颜色空间
    HSV 3x8位像素,色相,饱和度,值颜色空间
    I 32位有符号整数像素
    F 32位浮点像素

    1位像素的范围是0-1,0表示黑1表示白,中间表示灰。8位像素的范围是0-255,如RGB的(0, 0, 0)表示黑,(255, 255, 255)表示白,依此类推。

    四、图片的模式转换

    from PIL import Image
      
    image = Image.open("santa.jpg")
    print(image.mode)
    image1 = image.convert('1')
    print(image1.mode)
    # image1.show()
    image_l = image.convert('L')
    print(image_l.mode)
    # image_l.show()
    image_p = image.convert('HSV')
    print(image_p.mode)
    image_p.show()
    
    襄阳公园夜景

    convert(self, mode=None, matrix=None, dither=None, palette=WEB, colors=256):

    • 将当前图片转换为指定的模式,并且返回转换后的图片。如果不指定模式,则选择一种能保留图片所有信息且不使用调色板的模式(通常的结果是不转换)。
    • 将彩色图像转换为灰度('L')时,使用ITU-R 601-2进行亮度转换:L = R * 299/1000 + G * 587/1000 + B * 114/1000 。
    • 将灰度('L')或真彩('RGB')转换为模式'1'时,如果dither参数为'NONE',所有大于128的值均设置为255(白色),所有其他值都设为0(黑色)。

    convert()方法有5个参数,都有默认值,根据转换的模式来传值:

    • mode,
      图片的模式,传入需要转换的模式。部分模式之间不支持转换,代码会报错。

    • matrix,
      转换矩阵。传入该参数时,应该传入由浮点数构成的元组,元组长度为4或12。matrix只支持从少数模式转换成'L'或'RGB'。

    • dither,
      高频振动,用于控制颜色抖动。从模式'RGB'转换为'P'或从'RGB'或'L'转换为'1'时使用。可用的方法有'NONE'或'FLOYDSTEINBERG'(默认)。当提供了matrix参数时不使用此功能。

    • palette,
      调色板,用于控制调色板的产生。从模式'RGB'转换为'P'时使用,可用的方法有'WEB'(默认)或'ADAPTIVE'。'ADAPTIVE'表示使用自适应的调色板。

    • colors,
      自适应调色板使用的颜色数。当palette参数为'ADAPTIVE'时,用于控制调色板的颜色数目。默认是最大值,即256种颜色。

    相关文章

      网友评论

          本文标题:图像处理库Pillow的用法

          本文链接:https://www.haomeiwen.com/subject/qnqlkrtx.html