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

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

思路:
  • 先去掉原照片的背景颜色
  • 再添上新的背景颜色
  • 步骤很简单,思路清晰,操作起来也很简单,十行代码就可以搞定,保证看完你肯定会!

    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, (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替换证件照背景颜色不难,思路就是先去掉背景,再添上新的背景颜色,相信看到这里的你已经学会了。

    原文来自:https://mp.weixin.qq.com/s/Fp8wFAAnLU4E_75wrCO_bw

    本文地址:https://www.linuxprobe.com/replace-color-python-code.html编辑:J+1,审核员:逄增宝

    Linux命令大全:https://www.linuxcool.com/

    Linux系统大全:https://www.linuxdown.com/

    红帽认证RHCE考试心得:https://www.rhce.net/