查看原文
其他

十行Python代码替换证件照背景颜色

The following article is from Python研究者 Author 李运辰

点击关注公众号,一周多次包邮送书

来源:经授权转自 Python研究者(ID:PythonYjz)

作者:李运辰

本文教大家通过Python程序替换证件照背景颜色,以后更换证件照背景就不会再苦恼了。

思路

  1. 先去掉原照片的背景颜色

  2. 再添上新的背景颜色



步骤很简单,思路清晰,操作起来也很简单,十行代码就可以搞定,保证看完你肯定会!


1.去掉原图背景颜色


import os
# 去掉背景颜色
os.system('backgroundremover -i "'+str(in_path)+'"  -o "cg_output.jpg"')


in_path是原照片的路径、cg_output.jpg是去掉背景后的照片


提示:backgroundremover这个库的具体使用可以参考我之前的这篇文章(一行Python代码去除照片背景


2.添加新背景颜色

# 加上背景颜色
no_bg_image = Image.open("cg_output.jpg")
x, y = no_bg_image.size
new_image = Image.new('RGBA', no_bg_image.size, color=color)
new_image.paste(no_bg_image, (00, x, y), no_bg_image)
new_image.save(out_path)


out_path是替换背景颜色后的照片路径,color是要替换的新颜色,填上对应的英文即可,比如红色:red

color = "red"
# 红:red、蓝:blue、黑:black、白:white


完整代码

import os
from PIL import Image
# 输入
in_path = "replace.jpg"
# 输出
out_path = "out.png"
# 要替换的背景颜色
color = "red"
# 红:red、蓝:blue、黑:black、白:white

# 去掉背景颜色
os.system('backgroundremover -i "'+str(in_path)+'"  -o "cg_output.jpg"')
# 加上背景颜色
no_bg_image = Image.open("cg_output.jpg")
x, y = no_bg_image.size
new_image = Image.new('RGBA', no_bg_image.size, color=color)
new_image.paste(no_bg_image, (00, x, y), no_bg_image)
new_image.save(out_path)


代码大体步骤

replace.jpg(蓝色背景的照片),换成红色(color)的背景颜色的照片out.png


这里提醒一下读者,输出的照片(out.png)要保存成png的格式,其他格式如jpg程序会报错。


样例效果

(图片来源网络)


左边是原图(蓝色),右边是替换的照片

蓝换成红

总结


Python替换证件照背景颜色不难,思路就是先去掉背景,再添上新的背景颜色,相信看到这里的你已经学会了,记得给本文点赞、评论、转发,谢谢~~~


·················END·················

推荐阅读

•   为什么Win11资源管理器和开始菜单卡?这个原因你肯定没想到•   不用一行代码,搞懂React调度器原理•   字节一面:事务还没提交的时候,redolog 能不能被持久化到磁盘呢?•   阿里面试:妙解三道唯一数题目•   漫画:程序员的社会地位•   Edge浏览器真的越来越过分了 竟然篡改用户隐私设置收集数据•   腾讯终面:孤单的QQ号码怎么找?•   再见了VMware,一款更轻量级的虚拟机!


👇更多内容请点击👇

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存