安装
老规矩,先通过 pip 安装到本地机器。
pip install Pillow
基本操作
打开图像
可以通过 Image 类来操控图片,比如打开一张图片并获取其基本信息。
from PIL import Image, ImageFilter, ImageEnhance, ImageDraw, ImageFont img = Image.open('cat.jpg') print(F'图片大小为 {img.format}, 格式为 {img.size}, 模式为{img.mode}') # 图片大小为 JPEG, 格式为 (3458, 3456), 模式为 RGB
转换格式
如果给目标图片转换格式,可以通过 save 函数来实现。
img.save("cat.jpg ")
之后你就会在同目录下得到一张扩展名为 png 的图片了。
展示图片
直接通过 show
函数来显示图片。
img.show()
剪裁
使用 crop
函数传入一个四元祖坐标来剪裁图片。
point = (1500, 800, 3000, 2300) img_crop = img.crop(point) img_crop.show()
合并
通过 paste
函数传入合并的图像和坐标来实现两张图片的合并,那如果要合并多张图片呢,当然是直接调用多次就好了呀。
img.paste(img_crop, (0, 0), None) img.show(
缩略图
有时候图像过大,这时候就显示出缩略图的必要了,可以通过 thumbnail
函数传入 size 来实现图片的缩小。
thumb_size = (345, 345) img.thumbnail(thumb_size) img.show()
旋转
使用 transpose
函数传入旋转角度来实现图片的翻转。
可以传入的参数有以下几种:
- Image.ROTATE_90:逆时针旋转 90°
- Image.ROTATE_180:逆时针旋转 180°
- Image.ROTATE_270:逆时针旋转 270°
- Image.FLIP_LEFT_RIGHT:左右翻转
- Image.FLIP_TOP_BOTTOM:上下翻转
img_rotate = img.transpose(Image.ROTATE_90) img_rotate.show()
滤镜
当然,我们还可以对图片做一些滤镜处理。
- 高斯模糊处理
img_gaussianblur = img.filter(ImageFilter.GaussianBlur(30)) img_gaussianblur.show()
- 获取照片轮廓
img_contour = img.filter(ImageFilter.CONTOUR) img_contour.show()
- 亮度增强
如果照片亮度不够,还可以对照片进行亮度增强。
color = ImageEnhance.Color(img) img_color = color.enhance(1.5) img_color.show()
二次创作
当然,如果想对图片进行二次创作,比如添加一些辅助线,文字之类的可以用 ImageDraw 类来完成。
画线
draw = ImageDraw.Draw(img) draw.line((0, 0) + img.size, fill=20, width=3) draw.line((0, img.size[1], img.size[0], 0), fill=200, width=3) img.show()
文字
draw = ImageDraw.Draw(img) font = ImageFont.truetype('AliPuHui-Bold.ttf', 200) text = 'This is a cat!' draw.text((450, 450), text, font=font, fill='pink') img.show()
当然,如果有多行文字的话,直接加入换行符 \n
即可。
总结
今天派森酱带大家一起通过使用 Pillow 库对图片进行一些简单的操作,事实上 Pillow 库远不止此,将这些简单的操作进行组合甚至可以自创表情包,期待小伙伴们自行发掘更多更好玩的用法呀~