如何使用Python的Pillow库为图片叠加纸质背景生成复古老照片效果
使用Python Pillow实现复古老照片效果
核心逻辑
和你在GIMP中的操作逻辑完全一致:将纸质纹理作为上层图层和原图混合,可搭配色彩调整强化复古感,无需复杂依赖。
1. 环境准备
首先安装Pillow库:pip install pillow
2. 基础实现代码(对应调低透明度混合效果)
from PIL import Image, ImageEnhance # 1. 加载本地图片 original_img = Image.open("你的原图片路径.jpg").convert("RGB") paper_texture = Image.open("你的纸质素材路径.jpg").convert("RGB") # 2. 统一两张图片尺寸 paper_texture = paper_texture.resize(original_img.size) # 3. 可选:调整原图像参数打造复古色调 # 降低饱和度,弱化鲜艳色彩 color_adjust = ImageEnhance.Color(original_img) original_img = color_adjust.enhance(0.8) # 略微降低对比度,模拟旧照片质感 contrast_adjust = ImageEnhance.Contrast(original_img) original_img = contrast_adjust.enhance(0.9) # 可自行添加亮度、色温调整逻辑 # 4. 图层混合,alpha参数为纸质图层的透明度,取值范围0-1 blend_alpha = 0.25 final_img = Image.blend(original_img, paper_texture, blend_alpha) # 5. 保存结果 final_img.save("生成的老照片路径.jpg")
3. 进阶:实现GIMP图层蒙版效果
如果需要仅让纸质纹理的暗部/纹理部分叠加到原图,和你用的图层蒙版效果一致,可添加蒙版逻辑:
# 接上面代码的第2步之后执行 # 生成纸质纹理的灰度蒙版 paper_mask = paper_texture.convert("L") # 调整蒙版对比度,让纹理边界更清晰 mask_adjust = ImageEnhance.Contrast(paper_mask) paper_mask = mask_adjust.enhance(1.3) # 给纸质图层添加alpha蒙版 paper_with_mask = paper_texture.copy() paper_with_mask.putalpha(paper_mask) # 带蒙版的图层叠加 final_img = Image.alpha_composite(original_img.convert("RGBA"), paper_with_mask) final_img = final_img.convert("RGB")
4. 常用参数调整参考
- 混合透明度:
blend_alpha通常设置在0.2~0.4区间即可,数值越大纸质纹理越突出 - 色彩调整:饱和度可调整到0.70.9,对比度调整到0.80.95,可根据原图风格自行修改
- 蒙版强度:调整蒙版的对比度参数可以控制纹理的叠加范围,数值越大纹理越明显
参考素材


内容的提问来源于stack exchange,提问作者project.py
相关产品推荐
相关产品推荐

