以下示例,为Jupyter Notebook转化而来的Markdown,展示了PIL的基本使用方式,清晰明了。

  1. from PIL import Image
  2. import matplotlib.pyplot as plt
  1. #显示matplotlib生成的图形
  2. %matplotlib inline
  1. #读取图片
  2. img = Image.open('./data/avatar.png')
  3. #显示图片
  4. img.show() #自动调用操作系统中的图片工具显示
  1. # 在画布中显示
  2. plt.imshow(img)
  3. plt.show(img)

📃 Pillow基本使用 - 图1

  1. width,height = img.size
  2. print(width,height) # 图片的长宽
  1. 640 640
  1. #获得图像的模式
  2. img_mode = img.mode
  3. print(img_mode)
  1. RGB

图片旋转

  1. #将图片旋转45度
  2. img_rotate = img.rotate(45)
  3. #显示旋转后的图片
  4. plt.imshow(img_rotate)
  5. plt.show(img_rotate)

📃 Pillow基本使用 - 图2

图片剪切

  1. #剪切 crop()四个参数分别是:(左上角点的x坐标,左上角点的y坐标,右下角点的x坐标,右下角点的y坐标)
  2. img_crop = img.crop((100, 100, 300, 300))
  3. #展示图片
  4. plt.imshow(img_crop)
  5. plt.show(img_crop)

📃 Pillow基本使用 - 图3

图片缩放

  1. width,height = img.size
  2. #缩放
  3. img_resize = img.resize((int(width*0.5),int(height*0.5)),Image.ANTIALIAS)
  4. #展示图片
  5. plt.imshow(img_resize)
  6. plt.show(img_resize)
  7. print(img_resize.size)

📃 Pillow基本使用 - 图4

  1. (320, 320)

翻转

  1. #左右镜像
  2. img_lr = img.transpose(Image.FLIP_LEFT_RIGHT)
  3. #展示左右镜像图片
  4. plt.imshow(img_lr)
  5. plt.show(img_lr)

📃 Pillow基本使用 - 图5

  1. #上下镜像
  2. img_bt = img.transpose(Image.FLIP_TOP_BOTTOM)
  3. #展示上下镜像图片
  4. plt.imshow(img_bt)
  5. plt.show(img_bt)

📃 Pillow基本使用 - 图6

保存图片

  1. img_crop.save('./data/crop_result.jpg')
  2. img_resize.save('./data/img_resize.jpg')

保存后的图片:

📃 Pillow基本使用 - 图7