零基础学Python图片处理:用Pillow库轻松玩转修图

零基础学Python图片处理:用Pillow库轻松玩转修图


一、初识Pillow:你的第一张数码暗房

  1. 安装准备(只需要1分钟)
    打开电脑的命令行(Windows按Win+R输入cmd,Mac打开终端),输入:
pip install pillow 

看到「Successfully installed Pillow-x.x.x」就安装成功啦!

  1. 图片处理四步走
  2. 打开图片:像打开文件柜一样找到图片
  3. 修改图片:裁剪、调色、加特效
  4. 查看效果:随时预览修改结果
  5. 保存图片:存成新文件不破坏原图

二、新手必学的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格式会累积压缩损失
  • 解决:
    1. 尽量保持原图为PNG格式编辑
    2. 最后一步再转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就像你的数码暗房工具箱,从简单的尺寸调整到复杂的效果合成,只要掌握了这些基础操作,就能轻松处理日常生活中的各种图片需求。记住:多动手尝试才是最好的学习方式!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小彭爱学习

您的鼓励是我更新的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值