Python骚操作!实现自动制作各种证件照,这不比PS快多了!

[复制链接]
发表于 2022-11-11 16:49:39 | 显示全部楼层 |阅读模式
事情是这样的
晚上我正在聚精会神写代码(打游戏~)
突然,收到学妹给我发来的消息

还有一张自拍照
而且是可以放在结婚证上的那种哦

就是 之前帮过她几次忙
难道要以身相许 去一起办证

原来是照片尺寸不合适
让我帮她修图。还要什么蓝底、红底各种背景的

虽然有些失落
还是,默默的撸出了我39米长的python大刀

先上效果

1、尺寸长宽调整为:295x413
2、背景色调为蓝底 和 红底各一张
3、还要一张透明背景的证件照。

一顿啪啪啪操作,效果如下。

准备工作

我们需要用到两个python模块:pillow和removebg
pillow模块:用于调整照片的像素大小。
removebg模块:用于抠图,调整背景。
  1. #安装python模块
  2. pip install pillow
  3. pip install removebg
复制代码

证件照尺寸调整

先来调整尺寸吧,调好了,再来调整背景颜色。
学妹说,她考试要求的照片尺寸:295x413
  1. from PIL import Image
  2. old_img = 'C:/Users/Administrator/Desktop/img/学妹.png'
  3. new_img = 'C:/Users/Administrator/Desktop/img/学妹-new.png'
  4. img = Image.open(old_img)
  5. # 读取照片尺寸
  6. # Python学习交流君羊  708525271
  7. (x, y) = img.size
  8. # 重新设置照片尺寸
  9. x_s = 295  # 宽
  10. y_s = 413  # 高
  11. out = img.resize((x_s, y_s), Image.ANTIALIAS)  # resize image with high-quality
  12. out.save(new_img)
  13. print('原始照片尺寸(宽x高): ', x, "x", y)
  14. print('调整后照片尺寸:(宽x高) ', x_s, "x", y_s)
复制代码
 
啪啪一顿操作,照片尺寸调好了。

证件照背景调整

1、通过removebg模块的方法,我们可以把人像抠图出来。
2、我们通过颜色背景来定义三个背景颜色
  1. BACKGROUND_COLOR = {
  2.     'RED': (255, 0, 0, 255),
  3.     'BLUE': (67, 142, 219, 255),
  4.     'WHITE': (255, 255, 255, 255)
  5. }
复制代码
 
3、将抠出来的无背景的图片 粘贴到我们自己画的背景板上
  1. # 老照片路径、新照片路径、无背景照片路径、颜色
  2. def get_img_bg(old_img_path, new_img_path, no_bg_img_path, color):
  3.     # 去掉背景图,提取照片
  4.     # 完整代码领取君羊:708525271
  5.     rmbg.remove_background_from_img_file(old_img_path)
  6.     foreground = Image.open(no_bg_img_path)
  7.     background = Image.new('RGBA', foreground.size, BACKGROUND_COLOR[color])  # 背景图,大小同前景图
  8.     background.paste(foreground, mask=foreground)
  9.     background.save(new_img_path)
  10. if __name__ == '__main__':
  11.     get_img_bg('C:/Users/Administrator/Desktop/img/学妹.png', 'C:/Users/Administrator/Desktop/img/学妹_red.png',
  12.                'C:/Users/Administrator/Desktop/img/学妹.png_no_bg.png', 'RED')
  13.     get_img_bg('C:/Users/Administrator/Desktop/img/学妹.png', 'C:/Users/Administrator/Desktop/img/学妹_blue.png',
  14.                'C:/Users/Administrator/Desktop/img/学妹.png_no_bg.png', 'BLUE')
复制代码
 
 
啪啪啪代码一顿执行,所有照片都拿到了。
各种背景颜色图片

原图、透明背景、蓝色背景、红色背景图片全部生成。

完整代码

完整代码文末名片自取
结尾

在经过我啪啪啪,敲了半个小时代码之后,我把P好的证件照,发给了学妹。
学妹反响很强烈!

 
 

最后

最后给大家推荐一些Python视频教程,希望对大家有所帮助:
Python零基础入门全套教程
Python进阶全套教程
Python实战100例
再见!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表