图像处理
Pillow 库
Pillow 是 Python 图像处理的基础库,基于 PIL 发展而来。
pip install pillow
基本操作
from PIL import Image
img = Image.open('photo.jpg')
print(img.format) # JPEG/PNG
print(img.size) # (width, height)
print(img.mode) # RGB/RGBA/L
img.show()
img.save('output.png')
裁剪与缩放
# 裁剪 (左, 上, 右, 下)
cropped = img.crop((100, 100, 400, 400))
cropped.show()
# 缩放
resized = img.resize((200, 200)) # 指定尺寸
img.thumbnail((128, 128)) # 按比例缩小(原地修改)
旋转与翻转
rotated = img.rotate(45) # 旋转45度
flipped_h = img.transpose(Image.FLIP_LEFT_RIGHT) # 水平翻转
flipped_v = img.transpose(Image.FLIP_TOP_BOTTOM) # 垂直翻转
粘贴与合成
from PIL import Image
bg = Image.open('background.jpg')
overlay = Image.open('logo.png').resize((100, 100))
# 将 overlay 粘贴到 bg 的指定位置
bg.paste(overlay, (50, 50))
bg.save('composed.jpg')
滤镜效果
from PIL import ImageFilter, ImageEnhance
img = Image.open('photo.jpg')
img.filter(ImageFilter.CONTOUR) # 轮廓
img.filter(ImageFilter.BLUR) # 模糊
img.filter(ImageFilter.EDGE_ENHANCE) # 边缘增强
调整亮度/对比度
enhancer = ImageEnhance.Brightness(img)
brighter = enhancer.enhance(1.5) # 1.5倍亮度
enhancer = ImageEnhance.Contrast(img)
contrasted = enhancer.enhance(1.3) # 1.3倍对比度
绘图操作
from PIL import Image, ImageDraw, ImageFont
# 创建空白图像
canvas = Image.new('RGB', (800, 600), 'white')
draw = ImageDraw.Draw(canvas)
# 绘制图形
draw.rectangle((100, 100, 300, 300), outline='red', width=2) # 矩形
draw.ellipse((100, 100, 300, 300), outline='blue') # 椭圆
draw.line((0, 0, 800, 600), fill='green', width=3) # 直线
# 绘制文字
font = ImageFont.truetype('simsun.ttc', 32)
draw.text((300, 50), 'Hello, World!', fill='black', font=font)
canvas.save('drawn.png')
常用 RGB 颜色参考
| 颜色 | RGB | 颜色 | RGB |
|---|---|---|---|
| 红 | (255,0,0) | 绿 | (0,255,0) |
| 蓝 | (0,0,255) | 黄 | (255,255,0) |
| 白 | (255,255,255) | 黑 | (0,0,0) |
总结
Pillow:图像读写、缩放、裁剪、旋转、滤镜、绘图Image.resize/thumbnail:调整尺寸Image.paste:图像合成ImageDraw:在图像上绑制形状和文字- 更高级图像处理可用 OpenCV(计算机视觉库)