最后编辑于2022-04
注意: 图片文件类型支持PNG、JPG、JPEG、BMP,图片大小不超过2M。
图像风格转换
import requests, base64, sys
####################
### 自己修改的地方 ###
####################
API_Key = 【API Key】 # 填写API Key
Secret_Key = 【Secret Key】 # 填写Secret Key
photo = 【image】 # 输入图片的路径
option = 【option】 # 选择一个风格
'''
cartoon:卡通画风格
pencil:铅笔风格
color_pencil:彩色铅笔画风格
warm:彩色糖块油画风格
wave:神奈川冲浪里油画风格
lavender:薰衣草油画风格
mononoke:奇异油画风格
scream:呐喊油画风格
gothic:哥特油画风格
'''
# 第一次 Post 请求,获取access_token
def get_access_token():
# URL
url = 'https://aip.baidubce.com/oauth/2.0/token'
# 参数
params = {
'grant_type': 'client_credentials', # 固定值
'client_id': API_Key,
'client_secret': Secret_Key
}
res = requests.post(url, data=params)
# 请求成功 返回access_token和expires_in
# 请求失败 返回error和error_description
res = res.json()
access_token = res['access_token']
return access_token
# 第二次 Post 请求
# 二进制方式打开图片文件
with open(photo, 'rb') as f:
# 图像转为base64的格式
img = base64.b64encode(f.read())
# 定义params和header
params = {"image": img, "option": option}
header = {'content-type': 'application/x-www-form-urlencoded'}
# 发送请求
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/style_trans"
try:
request_url = request_url + "?access_token=" + get_access_token()
except KeyError:
print("access_token有误!请检查API Key 或 Secret Key是否复制正确")
sys.exit(0)
response = requests.post(request_url, data=params, headers=header)
res = response.json()
with open(photo.split(".")[0] + "_" + option + ".jpg", 'wb') as f:
processed_img = res['image']
processed_img = base64.b64decode(processed_img)
f.write(processed_img)
收藏
点赞
0
个赞
请登录后评论
TOP
切换版块
社区的markdown什么时候能出一个语法高亮啊。。哎,编辑的时候是有的,一发帖就没了