Skip to content

Commit e720f00

Browse files
committed
Python 换背景代码
1 parent 1b17e8a commit e720f00

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from PIL import Image
2+
import requests
3+
import base64
4+
5+
6+
def get_access_token():
7+
"""
8+
获取 access_token
9+
"""
10+
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=ak&client_secret=sk'
11+
response = requests.get(host)
12+
if response:
13+
return response.json()['access_token']
14+
15+
16+
def get_foreground(originalImagePath):
17+
"""
18+
人像分割
19+
"""
20+
# 二进制方式打开图片文件
21+
f = open(originalImagePath, 'rb')
22+
img = base64.b64encode(f.read())
23+
24+
# 请求 百度 AI 开放平台
25+
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg?access_token=" + get_access_token()
26+
headers = {'content-type': 'application/x-www-form-urlencoded'}
27+
params = {"image": img}
28+
response = requests.post(request_url, data=params, headers=headers)
29+
30+
if response:
31+
foreground = response.json()['foreground']
32+
img_data = base64.b64decode(foreground)
33+
img_path = 'foreground.png'
34+
with open(img_path, 'wb') as f:
35+
f.write(img_data)
36+
return Image.open(img_path)
37+
38+
39+
def get_background():
40+
"""
41+
背景图片
42+
"""
43+
color = ('red', 'blue', 'white')
44+
imgs = []
45+
for c in color:
46+
# 一寸照片大小
47+
img = Image.new("RGBA", (295, 413), c)
48+
imgs.append(img)
49+
return imgs
50+
51+
def mian():
52+
fore = get_foreground('original.jpg')
53+
p = fore.resize((330, 415))
54+
r,g,b,a = p.split()
55+
56+
imgs = get_background()
57+
for img in imgs:
58+
img.paste(p, (-30, 50), mask=a)
59+
img.show()
60+
61+
if __name__ == '__main__':
62+
mian()
-22.9 KB
Binary file not shown.

moumoubaimifan/background/result.png

-350 KB
Binary file not shown.

0 commit comments

Comments
 (0)