图像处理库Pillow的用法

参考资料:脚本之家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的用法)