零基础学Python图片处理:用Pillow库轻松玩转修图
一、初识Pillow:你的第一张数码暗房
- 安装准备(只需要1分钟)
打开电脑的命令行(Windows按Win+R输入cmd,Mac打开终端),输入:
pip install pillow
看到「Successfully installed Pillow-x.x.x」就安装成功啦!
- 图片处理四步走
- 打开图片:像打开文件柜一样找到图片
- 修改图片:裁剪、调色、加特效
- 查看效果:随时预览修改结果
- 保存图片:存成新文件不破坏原图
二、新手必学的5大基础操作
1. 打开与查看图片
from PIL import Image
就像用钥匙打开相册
img = Image.open("小猫.jpg")
查看图片信息(就像看照片背面备注)
print(f"尺寸:{img.size}(宽x高)") # 例如输出(800, 600)
print(f"格式:{img.format}") # 例如输出JPEG
print(f"颜色模式:{img.mode}") # 例如输出RGB(彩色)或L(黑白)
直接显示图片(像手机预览照片)
img.show()
注意:如果提示文件不存在,检查:
- 文件名是否拼写正确(区分大小写)
- 图片是否和代码在同一个文件夹
2. 调整尺寸与旋转
缩小图片(保持比例)
img.thumbnail((300, 300)) # 缩放到不超过300x300像素
旋转图片(就像转手机方向)
rotated = img.rotate(45, # 旋转45度
expand=True, # 自动扩大画布
fillcolor="pink") # 空白处填粉色
翻转图片(镜面效果)
flipped = img.transpose(Image.FLIP_LEFT_RIGHT) # 左右翻转
3. 裁剪与拼贴
裁剪局部(左,上,右,下坐标)
cropped = img.crop((100, 50, 400, 300)) # 从左上(100,50)到右下(400,300)
拼接图片(像拼图)
img1 = Image.open("图1.jpg")
img2 = Image.open("图2.png")
new_img = Image.new('RGB', (800, 400)) # 新建空白画布
new_img.paste(img1, (0, 0)) # 左上角贴图1
new_img.paste(img2, (400, 0)) # 右边贴图2
4. 调整颜色与滤镜
黑白老照片效果
bw_img = img.convert('L') # L表示灰度模式
基础调色(亮度/对比度)
from PIL import ImageEnhance
enhancer = ImageEnhance.Brightness(img)
bright_img = enhancer.enhance(1.5) # 亮度提升50%
添加滤镜(共10多种预设)
from PIL import ImageFilter
blur_img = img.filter(ImageFilter.BLUR) # 模糊效果
edge_img = img.filter(ImageFilter.FIND_EDGES) # 铅笔素描效果
5. 保存图片
自动识别格式(根据后缀名)
img.save("修改后.jpg") # 保存为JPEG
img.save("透明背景.png") # PNG支持透明背景
调整JPEG质量(1-100,默认75)
img.save("高清照片.jpg", quality=95)
转换格式(GIF转PNG)
gif_img = Image.open("动画.gif")
gif_img.save("静态图.png")
三、常见问题解答
Q1:处理后的图片变模糊了?
- 原因:反复保存JPEG格式会累积压缩损失
- 解决:
- 尽量保持原图为PNG格式编辑
- 最后一步再转JPEG并设置quality=95
Q2:想批量处理100张照片怎么办?
import os
from PIL import Image
for filename in os.listdir("照片文件夹"):
if filename.endswith((".jpg", ".png")):
img = Image.open(f"照片文件夹/{filename}")
img.thumbnail((800, 800))
img.save(f"小图版/{filename}")
Q3:如何给图片加文字水印?
from PIL import ImageDraw, ImageFont
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("msyh.ttc", 40) # 用微软雅黑字体
draw.text((10, 10), "版权所有", fill="red", font=font)
四、新手实战:制作电子相册
步骤1:准备素材
在项目文件夹中存放:
- 5张照片(命名photo1.jpg~photo5.jpg)
- 1张水印图片watermark.png
步骤2:批量处理脚本
import os
from PIL import Image, ImageFilter
for i in range(1, 6):
# 打开照片和水印
photo = Image.open(f"photo{i}.jpg")
watermark = Image.open("watermark.png")
# 统一尺寸
photo.thumbnail((1200, 800))
# 添加水印
photo.paste(watermark, (1000, 700), watermark) # 右下角
# 添加滤镜
if i % 2 == 0:
photo = photo.filter(ImageFilter.SMOOTH) # 偶数编号用柔化
else:
photo = photo.filter(ImageFilter.SHARPEN) # 奇数编号用锐化
# 保存结果
photo.save(f"相册/processed_{i}.png")
步骤3:生成相册预览图
拼接所有处理后的图片
images = [Image.open(f"相册/processed_{i}.png") for i in range(1,6)]
total_width = 1200 * 5
preview = Image.new('RGB', (total_width, 800))
x = 0
for img in images:
preview.paste(img, (x, 0))
x += 1200
preview.save("相册/预览图.jpg")
–
结语: Pillow就像你的数码暗房工具箱,从简单的尺寸调整到复杂的效果合成,只要掌握了这些基础操作,就能轻松处理日常生活中的各种图片需求。记住:多动手尝试才是最好的学习方式!