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

发表于:2022-1-26 09:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:菜鸟学Python

  本文教大家通过Python程序替换证件照背景颜色,以后更换证件照背景就不会再苦恼了。
  思路:
  ·先去掉原照片的背景颜色
  · 再添上新的背景颜色
  步骤很简单,思路清晰,操作起来也很简单,十行代码就可以搞定,保证看完你肯定会!
  1.去掉原图背景颜色
  import os
  # 去掉背景颜色
  os.system('backgroundremover -i "'+str(in_path)+'"  -o "cg_output.jpg"')

  in_path是原照片的路径、cg_output.jpg是去掉背景后的照片。
  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, (0, 0, 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, (0, 0, x, y), no_bg_image)
  new_image.save(out_path)

  代码大体步骤:
  将replace.jpg(蓝色背景的照片),换成红色(color)的背景颜色的照片out.png。
  这里提醒一下读者,输出的照片(out.png)要保存成png的格式,其他格式如jpg程序会报错。
  样例效果:
(图片来源网络)

  左边是原图(蓝色),右边是替换的照片(蓝换成红)。
  总结
  Python替换证件照背景颜色不难,思路就是先去掉背景,再添上新的背景颜色,相信看到这里的你已经学会了。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号