使用PIL处理图片
1. 图片对象基本处理
img = Image.open('./file/pic01.png') # 加载图片对象
img.format # 获取图片类型(后缀)
img.size # 获取图片尺寸
img.mode # 获取图片模式 如 RGB
img.info # 获取图片信息字典
2. 改变图像的模式
img2 = img.convert('RGBA')
3. 新建图层
# 新建一个图层
# 模式为 'RGB'
# 尺寸大小为 (256, 256)
# 三通道颜色值为 (128, 128, 128)
im = Image.new('RGB', (256, 256), (128, 128, 128))
4. 图像复制&粘贴
# 新建图层 im1
im1 = Image.new('RGB', (256, 256), (128, 128, 128))
# 新建图层 im2
im2 = Image.new('RGB', (128, 128), (0, 28, 128))
# 复制一个图层 im3
im3 = im2.copy()
# #################################################
# 在图层 im1 上粘贴图层 im2
# 粘贴位置坐标为 (100, 100) -- 默认为左上角为原点O
im1.paste(im2, (100, 100))
4.1 拷贝图片区域box
box = (b1, a1, b2, a2) # 确定拷贝区域坐标
box_copy = im.crop(box) # 将im表示的图片对象拷贝到 box_copy 中, 大小为box
5. 分离出图像的各通道数据(元组)
# 假设 box_copy 的模式为 'RGB'
r, g, b = box_copy.split()
r.mode # 分离后的模式都为 'L'
r.size # 分离后size不变
6. 获取图像的非零坐标
# 假设图片 pic1.png 的尺寸为 (400, 400)
im = Image.open('./pic1.png')
im_tuple = im.getbbox() # im_tuple 值为 (0, 0, 400, 400)
图像改变尺寸
图片保存