python常用库之Pillow(PIL)的使用

一、基本使用

测试图片为:

1.打开

from PIL import Image

im = Image.open("C:/Users/bingyunsky/Desktop/test.jpg")
print(im.format, im.size, im.mode)  # 打印格式、尺寸(长、宽;pixels)、类型
# 输出结果: JPEG (200, 200) RGB
im.show() # 展示获取到的图片

常用属性

im.width  # 宽度
im.height  # 高度
im.size  # 尺寸(宽和高),是一个元组
im.mode  # 模式,如RGB, RGBA, P, L等
im.format  # 格式,如.jpg .png等
im.readonly  # 是否只读,值为0或1
im.category  # 类别
im.info  # 图片的信息,是一个字典

2.创建一张新图片

from PIL import Image

im = Image.new('RGB', (200, 160), (0, 0, 255))  # (0,0,255)可以换成'#0000FF'或者'blue',都是表示蓝色
im.show()

运行结果:

3.图片的模式

4.图片的模式转换(convert)

from PIL import Image

im = Image.open("C:/Users/bingyunsky/Desktop/test.jpg")
print(im.mode)
im1 = im.convert('1')
print(im1.mode)
# im1.show()
im2 = im.convert('L')
print(im2.mode)
# im2.show()
im3 = im.convert('P')
print(im3.mode)
im3.show()

# 输出结果为:
# RGB
# 1
# L
# P

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种颜色。

更多:https://blog.csdn.net/leemboy/article/details/83792729

https://www.jb51.net/article/196007.htm

原文地址:https://www.cnblogs.com/zijue/p/14081722.html