利用Python代碼實現一鍵摳背景功能

前言

又是一個逛csdn發現的一個有趣的小項目,可以一鍵摳背景,需要用到removebg模塊及其API,API可從其官網免費獲取,網址如下https://www.remove.bg/zh
ps:加上/zh後,網頁內容會顯示中文

首先是安裝removebg模塊
然後就敲代碼了,官方使用文檔是個好東西,應該好好利用
有趣的是,意外發現了兩種使用API的方法

1.用到爬蟲的知識,利用requests模塊,從網頁上調用,直接實現摳背景

# Requires "requests" to be installed (see python-requests.org)
import requests
 
response = requests.post(
 'https://api.remove.bg/v1.0/removebg',
 files={'image_file': open('/path/to/file.jpg', 'rb')},
 data={'size': 'auto'},
 headers={'X-Api-Key': 'INSERT_YOUR_API_KEY_HERE'},
)
if response.status_code == requests.codes.ok:
 with open('no-bg.png', 'wb') as out:
 out.write(response.content)
else:
 print("Error:", response.status_code, response.text)

效果如下:在這裏插入圖片描述
在這裏插入圖片描述
2.參照removebg庫中的使用說明調用API,用相關代碼實現摳背景在這裏插入圖片描述
上代碼,這裏就只展示處理單張圖片的代碼,批量處理圖片以及根據url處理圖片的相關代碼均在README.md中有展示

效果如下
在這裏插入圖片描述

rom removebg import RemoveBg
# 摳單張圖片
rmbg = RemoveBg("P3UCVZzKiUxW7BbkmcRYhgTB", "error.log") # 引號內是你獲取的API
rmbg.remove_background_from_img_file(r"C:\Users\Lenovo\PycharmProjects\爬蟲\長頸鹿1.jpg",size='regular',bg_color='e.g.red') # 圖片地址

在這裏插入圖片描述
但奇怪的是加上填充純色背景的屬性bg_color='e.g.red’後會有這樣的報錯,尚未解決

後來使用了PIL庫來實現背景的填充

from PIL import Image
 
# 加載已去背景的圖像
im = Image.open('./pic/no-bg.png')
x, y = im.size
 
try:
 # 填充紅色背景
 p = Image.new('RGBA', im.size, (255, 0, 0))
 p.paste(im, (0, 0, x, y), im) #paste的背景尺寸需與原圖尺寸相同
 # 保存填充後的圖片
 p.save('./pic/no-bg_red_bg.png')
 p.show() #顯示處理後的圖片
except:
 with open('./error1.log', 'a') as f:
 f.write('background change fail .')

效果如下在這裏插入圖片描述

非常感謝你的閱讀
大學的時候選擇了自學python,工作了發現吃了計算機基礎不好的虧,學歷不行這是沒辦法的事,只能後天彌補,於是在編碼之外開啓了自己的逆襲之路,不斷的學習python核心知識,深入的研習計算機基礎知識,整理好了,我放在我們的Python學習扣qun:774711191,如果你也不甘平庸,那就與我一起在編碼之外,不斷成長吧!

其實這裏不僅有技術,更有那些技術之外的東西,比如,如何做一個精緻的程序員,而不是“屌絲”,程序員本身就是高貴的一種存在啊,難道不是嗎?[點擊加入]
想做你自己想成爲高尚人,加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章