一、基本使用
测试图片为:
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