在网上看到一篇将女朋友照片转成动漫头像的博文(java实现),emmmmm, 我不会python, 又不会java,更重要的是没有女朋友! 所以我决定用万能的php实现将别人女朋友照片转成动漫头像!
首先注册个百度ai,然后进到人像动漫化开通控制台(好像是前500次免费调用接口)。
到我的控制台创建应用
然后把api key和serect key 记下来, 等下需要用来获取accesstoken
获取accesstoken
1.先封装一个curl请求方法
<?phpclass curl{ public function post($url = '', $param = '') { if (empty($url) || empty($param)) { return false; } $posturl = $url; $curlpost = $param; $curl = curl_init();//初始化curl curl_setopt($curl, curlopt_url,$posturl);//抓取指定网页 curl_setopt($curl, curlopt_header, 0);//设置header curl_setopt($curl, curlopt_returntransfer, 1);//要求结果为字符串且输出到屏幕上 curl_setopt($curl, curlopt_post, 1);//post提交方式 curl_setopt($curl, curlopt_postfields, $curlpost); $data = curl_exec($curl);//运行curl if ($error = curl_error($curl)) { die($error); } curl_close($curl); return $data; }}
2.获取accesstoken
require_once 'curl.php';class accesstoken{ // api key private $apikey= ''; // secret key private $secretkey = ''; private $requesttoeknurl = "https://aip.baidubce.com/oauth/2.0/token"; private $accesstoken; public function __construct() { // 默认有效时间2592000秒, 可以存到缓存中 // 对返回的数据没做过段判断, 需要的请自行判断处理 $this->accesstoken = ($this->requestaccesstoken())['access_token']; } public function requestaccesstoken(){ $url = $this->requesttoeknurl; $postdata['grant_type'] = 'client_credentials'; $postdata['client_id'] = $this->apikey; $postdata['client_secret'] = $this->secretkey; $o = ""; foreach ( $postdata as $k => $v ) { $o.= "{$k}=" . urlencode( $v ). "&" ; } $postdata = trim($o, '&'); $result = (new curl())->post($url, $postdata); return json_decode($result, true); } public function getaccesstoken() { return $this->accesstoken; }}
通过getaccesstoken()方法获取accesstoken
<?php// require_once 'curl.php';require_once 'accesstoken.php';class demo{ public function index() { // 获取accesstoken $accesstoken = (new accesstoken())->getaccesstoken()); // 百度ai接口 $url = 'https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime?access_token=' . $accesstoken; // 图片路径 $img = file_get_contents('c:\users\admin\desktop\6a56f099861bf4c470e5d24f7017b1a.jpg'); // base64编码的图片, 可以是本地图片或网络上传的, 只要能转成base64编码就可以了 $img = base64_encode($img); $bodys = array( 'image' => $img ); $result = (new curl())->post($url, $bodys); $result = json_decode($result, true); // data:image/jpg;base64, echo "<img src=\"data:image/jpg;base64,{$result['image']}\" />"; }}(new demo())->index();
最后贴上别人的女朋友o(╥﹏╥)o
推荐学习:《php视频教程》
以上就是用php将女友照片转成可爱的动漫头像!的详细内容。