Python图片处理教程_Pillow图像操作与特效应用

12次阅读

pillow处理图片核心是Image对象,支持打开、查看尺寸/模式/格式及保存;缩放、裁剪、旋转返回新图,需注意坐标与比例;图像增强与滤镜通过ImageEnhance和ImageFilter实现。

Python图片处理教程_Pillow图像操作与特效应用

用Pillow处理图片不难,关键在理解图像对象、模式和常用方法的配合逻辑。它不是功能最全的库,但足够轻量、稳定,适合日常缩放、裁剪、滤镜、文字叠加等需求。

打开、保存与基础属性查看

Pillow的核心是Image对象。用Image.open()加载图片后,就能读取尺寸、色彩模式、格式等信息:

  • img.size 返回 (宽, 高) 元组,注意顺序是宽在前
  • img.mode 表示颜色模式,常见如 ‘RGB’(三通道)、’L’(灰度)、’RGBA’(带透明通道)
  • img.format 是原始文件格式,如 ‘JPEG’ 或 ‘PNG’,保存时可指定不同格式
  • 保存用 img.save(“output.png”),自动根据后缀推断格式;也可显式写 img.save(“out.jpg”, “JPEG”, quality=95)

缩放、裁剪与旋转操作

这些属于几何变换,不改变像素内容本质,但要注意方法返回新图像,原图不变:

  • img.resize((w, h)):严格按目标尺寸拉伸,可能变形;想保持比例可用 img.thumbnail((max_w, max_h))(就地修改,不返回新图)
  • img.crop((left, top, right, bottom)):传入四元组坐标,注意右下角是开区间(不包含)
  • img.rotate(angle, expand=True):逆时针旋转角度,expand=True 自动扩大画布避免裁切

图像增强与简单滤镜

通过ImageEnhance模块可调节亮度、对比度、饱和度等,而ImageFilter提供预设滤镜:

立即学习Python免费学习笔记(深入)”;

  • ImageEnhance.Brightness(img).enhance(1.3):值 >1 变亮,
  • ImageEnhance.Contrast(img).enhance(0.8):降低对比度让画面更“平”
  • img.filter(ImageFilter.BLUR)ImageFilter.SHARPEN:即用即得,适合快速预览效果
  • 转灰度统一用 img.convert(“L”),比手动计算RGB权重更可靠

在图上添加文字与简单图形

需要借助ImageDrawImageFont,注意字体路径必须存在,中文需加载支持UTF-8的字体文件:

  • draw = ImageDraw.Draw(img) 创建绘图上下文
  • font = ImageFont.truetype(“simhei.ttf”, 24) 加载中文字体(Windows常见路径为 C:/Windows/Fonts/simhei.ttf)
  • draw.text((x, y), “你好”, fill=(255, 0, 0), font=font):fill 支持 RGB 或 RGBA 元组
  • 画矩形:draw.rectangle([(x1,y1), (x2,y2)], outline=”blue”, width=2)
text=ZqhQzanResources