十行Python代碼替換證件照背景顏色
本文教大家通過Python程序替換證件照背景顏色,以后更換證件照背景就不會(huì)再苦惱了。
思路:
- 先去掉原照片的背景顏色
- 再添上新的背景顏色
步驟很簡單,思路清晰,操作起來也很簡單,十行代碼就可以搞定,保證看完你肯定會(huì)!
1.去掉原圖背景顏色
import os
# 去掉背景顏色
os.system('backgroundremover -i "'+str(in_path)+'" -o "cg_output.jpg"')
in_path是原照片的路徑、cg_output.jpg是去掉背景后的照片
提示:backgroundremover這個(gè)庫的具體使用可以參考我之前的這篇文章(一行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是要替換的新顏色,填上對(duì)應(yīng)的英文即可,比如紅色:red
color = "red"
# 紅:red、藍(lán):blue、黑:black、白:white
完整代碼
import os
from PIL import Image
# 輸入
in_path = "replace.jpg"
# 輸出
out_path = "out.png"
# 要替換的背景顏色
color = "red"
# 紅:red、藍(lán):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(藍(lán)色背景的照片),換成紅色(color)的背景顏色的照片out.png
這里提醒一下讀者,輸出的照片(out.png)要保存成png的格式,其他格式如jpg程序會(huì)報(bào)錯(cuò)。
樣例效果:
(圖片來源網(wǎng)絡(luò))
左邊是原圖(藍(lán)色),右邊是替換的照片
(藍(lán)換成紅)
總結(jié)
Python替換證件照背景顏色不難,思路就是先去掉背景,再添上新的背景顏色,相信看到這里的你已經(jīng)學(xué)會(huì)了。