import base64 import requests class AnimeDemo: def __init__(self,AK,SK): self.AK=AK self.SK=SK self.access_token=self.get_access_token() def get_access_token(self): token_host = ‘https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={ak}&client_secret={sk}‘.format( ak=self.AK, sk=self.SK) header = {‘Content-Type‘: ‘application/json; charset=UTF-8‘} response = requests.post(url=token_host, headers=header) content = response.json() access_token = content.get("access_token") return access_token def baidu_selfie_anime(self,image_path,save_path): request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime" # 二进制方式打开图片文件 f = open(image_path, ‘rb‘) img = base64.b64encode(f.read()) params = {"image": img} request_url = request_url + "?access_token=" + self.access_token headers = {‘content-type‘: ‘application/x-www-form-urlencoded‘} try: response = requests.post(request_url, data=params, headers=headers) if response.status_code==200: result= response.json() print(result) image=result.get("image") if image: img_data=base64.b64decode(image) with open(save_path,"wb") as f: f.write(img_data) return {"msg":"完成"} return {"msg":"失败"} except Exception as e: return {"msg":"失败:%s"%e} if __name__ == ‘__main__‘: AK = "*******" # 官网获取的AK 需要你先开通和创建应用 SK = "*******" # 官网获取的SK anime_obj = AnimeDemo(AK=AK, SK=SK) res=anime_obj.baidu_selfie_anime(r"D:\images\微信图片_20200722221927.jpg",r"C:\Users\Administrator\Desktop\卡通.jpg") print(res)
感觉一般般,反正有500次免费的,凑合!
原文:https://www.cnblogs.com/angelyan/p/13363565.html