目录
1 导入PIL模块(pillow)
1.1 导入PIL模块
1.1.1 可用的导入形式
1.1.2 常用的导入形式
1.1.3 PIL下面的常用子模块
2 用 PIL读入,生成和显示图片
2.1 用 PIL.Image.open() 可以读入图片
2.2 用PIL.Image.new() 生成新图片
2.3 PIL中图片的格式
2.4 pic.show() 显示图片
2.5 上述内容的测试代码
3 PIL相关的图片的属性
3.1 PIL的坐标轴
3.2 颜色模式
3.3 PIL中关于图片的各种信息
3.3.1 除了前面查看的图片的类型 type()
3.3.2 PIL的图片的信息
4 PIL相关的方法
4.1 copy
4.2 裁剪 image.crop()
4.3 旋转 rotate()方法
4.4 利用 transpose()
4.5 image.resize()
4.6 Pillow库的**thumbnail()**方法可以生成图像的缩略图
4.7 添加水印。Pillow库提供了丰富的绘图功能
5 画图 PIL.ImageDraw
5.1 画图 PIL.ImageDraw.Draw(im)
6 保存图片
1 导入PIL模块(pillow)
1.0 PIL的全称:Python Imaging Library
- PIL的全称:Python Imaging Library
- 所以你可以理解确实模块名不叫pillow,而叫PIL了
- 但是在python中查找是否安装了pillow,却可以用pillow,如输入 pip show pillow
- import PIL #而不是 import pillow
- pip show pillow # 而不是 pip show PIL
1.1 导入PIL模块
1.1.1 可用的导入形式
- import PIL
- import PIL
- #注意,包名并不是 pillow 或Pillow,包名而不是as的别名,模块名就是PIL
- # 错误的 import pillow
- # 错误的 import Pillow
1.1.2 常用的导入形式
- from PIL import Image
- from PIL import ImageDraw
- # 注意大小写
1.1.3 PIL下面的常用子模块
- Pillow库最常用的两个模块是Image和ImageDraw
- 此外,这个库还提供了像ImageFont、ImageFile、ImageFilter、ImageGrab、ImageTk、ImageQt等模块,这些模块扩展了图像库的一些额外功能。
- Image模块主要封装了对图像的一些基本操作,比如:裁剪、复制、粘贴、旋转等这样一些操作。
- ImageDraw主要封装了在图像上绘制一些形状、文本的功能。
2 用 PIL读入,生成和显示图片
2.1 用 PIL.Image.open() 可以读入图片
- 用 PIL.Image.open() 可以读入图片
- PIL.Image.open(path)
- path是图片的路径:绝对/同目录下的相对路径
- 注意大小写 Image.open() 不是 image.open()
path1=r"C:\Users\Administrator\Desktop\tp2.jpg"
pic1=PIL.Image.open(path1)
2.2 用PIL.Image.new() 生成新图片
pic2=PIL.Image.new(size=(100,100),mode="RGB",color=(255,255,0))
参数
- size=(100,100)
- mode="RGB" #注意大小写,如果写成mode="rgb"会报错
- color=(255,255,0)
2.3 PIL中图片的格式
读入的图片,就是图片本身的格式jpg 在PIL里对应的类型:'PIL.JpegImagePlugin.JpegImageFile'
- <class 'PIL.JpegImagePlugin.JpegImageFile'>
PIL新生成的图片的格式默认是'PIL.Image.Image'
- <class 'PIL.Image.Image'>
2.4 pic.show() 显示图片
- pic.show()
- 其中pic 指代已经在PIL中打开的文件
- 而打开的方式不是显示在python的IDE中,而是在操作系统如windows中打开图片
pic1=PIL.Image.open(path1)
pic2=PIL.Image.new(size=(100,100),mode="RGB",color=(255,255,0))pic1.show()
pic2.show()
2.5 上述内容的测试代码
import PIL #注意,包名并不是 pillow 或Pillow,包名而不是as的别名就是PIL
path1=r"C:\Users\Administrator\Desktop\tp2.jpg"
pic1=PIL.Image.open(path1)
pic2=PIL.Image.new(size=(100,100),mode="RGB",color=(255,255,0)) #注意大小写mode="rgb"报错
print(type(path1))
print(type(pic1))
print(type(pic2))
pic1.show()
pic2.show()
3 PIL相关的图片的属性
3.1 PIL的坐标轴
- pillow的坐标轴,是以 top为X轴,left为Y轴的坐标系。
- 也就是看起来像“第4象限”
- 很多表格,和作图软件都采用这种坐标系,比如EXCEL表本质也是这样的坐标系。
- 一般使用该区域顶点坐标(左、顶)和范围坐标(右、底)表示一块矩形区域。
如前面的代码生成的图片的左上角,右下角的点坐标可以由着size()决定
- size=(100,100)
- pos left top=(0,0)
- pos righ bottom =(0,0)
import PIL
pic2=PIL.Image.new(size=(100,100),mode="RGB",color=(255,255,0)) #注意大小写mode="rgb"报错
print(type(pic2))
pic2.show()
3.2 颜色模式
pic2=PIL.Image.new(size=(100,100),mode="RGB",color=(255,255,0))
PIL支持的图片的颜色mode有很多种:
- RGB,red,green,blue 三色混合
- RGBA,A是alpha通道,透明度
- YCB 彩色电视机格式?
- CMYK模式:
CMYK模式
- C:Cyan = 青色,又称为‘天蓝色’或是‘湛蓝’;
- M:Magenta = 品红色,又称为‘洋红色’;
- Y:Yellow = 黄色;
- K:blacK=黑色)
3.3 PIL中关于图片的各种信息
3.3.1 除了前面查看的图片的类型 type()
print(type(pic1))
- 读入的图片,就是图片本身的格式
- <class 'PIL.JpegImagePlugin.JpegImageFile'>
- PIL新生成的图片的格式默认是'PIL.Image.Image'
- <class 'PIL.Image.Image'>
3.3.2 PIL的图片的信息
查看image 属性的一些通用python方法
- type(image)
image/picture 本身的各种属性
- 字典信息: image.info
- 宽度(px): image.width
- 高度(px): image.height
- 尺寸(px): image.size
- 颜色模式: image.mode
- 格式(扩展名): image.format
- 只读(1为只读):image.readonly
from PIL import Image
path1=r"C:\Users\snow\Desktop\pic1.jpg"
pic1 = Image.open(path1)
pic1.show()
print("pic图片数据类型",type(pic1))
print('字典信息: ', pic1.info)
print('宽度(px): ', pic1.width)
print('高度(px): ', pic1.height)
print('尺寸(px): ', pic1.size)
print('颜色模式: ', pic1.mode)
print('格式(扩展名): ', pic1.format)
print('只读(1为只读): ', pic1.readonly)
pic图片数据类型 <class 'PIL.JpegImagePlugin.JpegImageFile'> 字典信息: {'jfif': 257, 'jfif_version': (1, 1), 'dpi': (120, 120), 'jfif_unit': 1, 'jfif_density': (120, 120)} 宽度(px): 64 高度(px): 64 尺寸(px): (64, 64) 颜色模式: RGB 格式(扩展名): JPEG 只读(1为只读): 0
4 PIL相关的方法
4.1 复制,img_obj.copy()
- img_obj.copy()
- 复制图片,避免直接修改原图,在copy上做修改
4.2 裁剪 img_obj.crop()
- img_crop = image.crop(box=(左上角点的X, 左上角点的Y, width,height))
- box=(左上角点的X, 左上角点的Y, width,height)
import PIL
pic2=PIL.Image.new(size=(100,100),mode="RGB",color=(255,255,0)) #注意大小写mode="rgb"报错
pic3=pic2.copy()
pic4=pic3.crop(box=(0,0,50,50))
pic4.show()
4.3 粘贴图片 img_obj.paste()
- img_obj.paste(img_obj_other, (posx, posy))
- 被粘贴的目标图片(小图片,(小图片在坐标系内的左上角X,左上角Y))
- 只能粘贴在目标图片的范围之内
4.3 旋转 rotate()方法
4.4 利用 transpose()
4.5 image.resize()
4.6 Pillow库的**thumbnail()**方法可以生成图像的缩略图
4.7 添加水印。Pillow库提供了丰富的绘图功能
5 画图 PIL.ImageDraw
5.1 画图 PIL.ImageDraw.Draw(im)
im = Image.new('RGBA', (200, 200), 'white')
# 创建一个画图实例
draw = ImageDraw.Draw(im)
6 保存图片
7