您好,登錄后才能下訂單哦!
前言
又是一個逛csdn發現的一個有趣的小項目,可以一鍵摳背景,需要用到removebg模塊及其API,API可從其官網免費獲取,網址如下https://www.remove.bg/zh
ps:加上/zh后,網頁內容會顯示中文
有趣的是,意外發現了兩種使用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,用相關代碼實現摳背景
從gitub上下載removebg庫源碼時會有一個使用說明,即README.md,鏈接如下
https://github.com/brilam/remove-bg
上代碼,這里就只展示處理單張圖片的代碼,批量處理圖片以及根據url處理圖片的相關代碼均在README.md中有展示
from removebg import RemoveBg # 摳單張圖片 rmbg = RemoveBg("xxxxx", "error.log") # 引號內是你獲取的API rmbg.remove_background_from_img_file(r"C:\Users\Lenovo\PycharmProjects\爬蟲\長頸鹿1.jpg",size='regular') # 圖片地址
效果如下
from 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 .')
效果如下
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。