文章目录

(假装此处有图片)
刚入门Python的时候,每次听到别人说"用Python处理图片",我总以为是PS那样的复杂操作需要自己写算法(救命!)。直到发现Pillow这个神器——原来处理图片可以这么简单!
一、安装Pillow只需3秒钟?!
先别急着找安装包(你找不到的)!这个库的正确安装姿势是:
pip install pillow
注意这里是大写的P(这个坑我当年跳了三次!)。安装完成后试试这个魔法咒语:
from PIL import Image
没报错?恭喜你开启新世界的大门!
二、5行代码玩转图片处理
1. 打开图片比开门还简单
img = Image.open('你的图片.jpg') # 支持jpg/png/gif等30+格式!
img.show() # 瞬间召唤系统默认图片查看器
等等!如果遇到"无法识别文件"的错误(这个我遇到过),八成是文件路径写错了。可以用绝对路径试试看:
Image.open(r'C:\Users\你的名字\Desktop\照片.jpg')
2. 保存图片还能这么玩?
img.save('新图片.webp', quality=85) # 转换格式同时压缩质量
重点来了(敲黑板)!用这个技巧可以把10M的jpg压缩到200KB还不明显失真!亲测朋友圈发图必备!
三、这些实用功能你知道吗?
1. 批量生成缩略图
size = (128, 128)
img.thumbnail(size) # 保持比例的智能缩放
img.save('缩略图.jpg')
昨天还在用PS一张张调整尺寸?现在可以批量处理整个相册!
2. 图像裁剪的正确姿势
box = (100, 100, 400, 400) # (左, 上, 右, 下)
region = img.crop(box)
想当朋友圈摄影师?用这个功能轻松实现二次构图!
3. 给图片加滤镜超简单
from PIL import ImageFilter
img.filter(ImageFilter.BLUR) # 模糊效果
img.filter(ImageFilter.CONTOUR) # 素描风格
img.filter(ImageFilter.EMBOSS) # 浮雕效果
Ins风格的滤镜自己就能做(不用求美工了)!
四、实战:合成专属表情包
来点实际的!咱们用Pillow做个熊猫头表情包:
# 加载素材
base = Image.open('熊猫头.jpg')
text_img = Image.open('文字.png')
# 调整文字大小
text_img = text_img.resize((200, 50))
# 合成图片
base.paste(text_img, (50, 100))
# 保存成果
base.save('表情包成品.jpg')
这样生成的图片可以直接扔到群里斗图(亲测效果拔群)!
五、进阶技巧大揭秘
1. EXIF信息读取
exif_data = img._getexif()
print(exif_data[36867]) # 拍摄时间
print(exif_data[33434]) # 曝光时间
摄影爱好者狂喜!可以分析照片参数了!
2. GIF动态图处理
gif = Image.open('动画.gif')
# 分解每一帧
frames = []
try:
while True:
frames.append(gif.copy())
gif.seek(gif.tell()+1)
except EOFError:
pass
# 修改后重新合成
frames[0].save('新动画.gif', save_all=True, append_images=frames[1:])
给自己的GIF加个水印?小case!
六、避坑指南(血泪教训)
-
通道问题:处理PNG透明背景时记得转为RGBA模式
img = img.convert('RGBA') -
内存爆炸:处理超大图时用
Image.NEAREST采样img.resize((8000,6000), Image.NEAREST) -
格式陷阱:保存JPG时如果报错,试试先转RGB模式
img.convert('RGB').save('output.jpg')
七、还能更强大?
Pillow真正的威力在于和其他库结合使用:
- 用OpenCV做图像识别后,用Pillow添加标注
- 结合numpy实现自定义滤镜
- 配合matplotlib生成分析图表
最近我用Pillow+TensorFlow开发了个自动P图工具,处理速度比PS快10倍!(不过代码太长就不展示了)
八、最后的小彩蛋
试试这个代码,你会发现新大陆:
img.transpose(Image.ROTATE_90) # 旋转90度
img.transpose(Image.FLIP_LEFT_RIGHT) # 水平翻转
原来那些拍照APP的核心功能,用Pillow也就几行代码的事!
总结一下:Pillow就像瑞士军刀,看着简单但功能深不见底。下次遇到图片处理需求,先别急着找第三方工具,打开Python试试这个神器吧!保证你会回来点赞的~(别问我怎么知道的)
2万+

被折叠的 条评论
为什么被折叠?



