用PHP将女友照片转成可爱的动漫头像!

 3396

在网上看到一篇将女朋友照片转成动漫头像的博文(java实现),emmmmm, 我不会Python, 又不会Java,更重要的是没有女朋友! 所以我决定用万能的PHP实现将别人女朋友照片转成动漫头像!

首先注册个百度AI,然后进到人像动漫化开通控制台(好像是前500次免费调用接口)。


用PHP将女友照片转成可爱的动漫头像!

到我的控制台创建应用


用PHP将女友照片转成可爱的动漫头像!


然后把Api KeySerect Key 记下来, 等下需要用来获取AccessToken


用PHP将女友照片转成可爱的动漫头像!

获取AccessToken


1、先封装一个curl请求方法

  1. <?php
  2. class Curl
  3. {
  4.     public function post($url = '', $param = '')
  5.     {
  6.         if (empty($url) || empty($param)) {
  7.             return false;
  8.         }
  9.         $postUrl = $url;
  10.         $curlPost = $param;
  11.         $curl = curl_init();//初始化curl
  12.         curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
  13.         curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
  14.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
  15.         curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
  16.         curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
  17.         $data = curl_exec($curl);//运行curl
  18.         if ($error = curl_error($curl)) {
  19.             die($error);
  20.         }
  21.         curl_close($curl);
  22.         return $data;
  23.     }
  24. }

2、获取AccessToken

  1. require_once 'Curl.php';
  2.  
  3. class AccessToken
  4. {
  5.     // Api Key
  6.     private $apiKey= ''; 
  7.     // Secret Key
  8.     private $secretKey = '';
  9.  
  10.     private $requestToeknUrl = "https://aip.baidubce.com/oauth/2.0/token";
  11.     private $accessToken;
  12.  
  13.     public function __construct()
  14.     {
  15.         // 默认有效时间2592000秒, 可以存到缓存中
  16.         // 对返回的数据没做过段判断, 需要的请自行判断处理 
  17.         $this->accessToken = ($this->requestAccessToken())['access_token'];
  18.     }
  19.  
  20.     public function requestAccessToken(){
  21.         $url = $this->requestToeknUrl;
  22.         $postData['grant_type']       = 'client_credentials';
  23.         $postData['client_id']      = $this->apiKey;
  24.         $postData['client_secret'] = $this->secretKey;
  25.         $o = "";
  26.         foreach ( $postData as $k => $v ) 
  27.         {
  28.             $o.= "{$k}=" . urlencode( $v ). "&" ;
  29.         }
  30.         $postData = trim($o, '&');
  31.          
  32.         $result = (new Curl())->post($url, $postData);
  33.         return json_decode($result, true);
  34.     }
  35.      
  36.     public function getAccessToken()
  37.     {
  38.         return $this->accessToken;
  39.     }
  40. }

通过getAccessToken()方法获取AccessToken


  1. <?php
  2. // require_once 'Curl.php';
  3. require_once 'AccessToken.php';
  4.  
  5. class Demo
  6. {
  7.     public function index()
  8.     {
  9.         // 获取AccessToken
  10.         $accessToken = (new AccessToken())->getAccessToken());
  11.         // 百度AI接口
  12.         $url = 'https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime?access_token=' . $accessToken;
  13.         // 图片路径
  14.         $img = file_get_contents('C:\Users\Admin\Desktop\6a56f099861bf4c470e5d24f7017b1a.jpg');
  15.         // base64编码的图片, 可以是本地图片或网络上传的, 只要能转成base64编码就可以了
  16.         $img = base64_encode($img);
  17.         $bodys = array(
  18.             'image' => $img
  19.         );
  20.         $result = (new Curl())->post($url, $bodys);
  21.         $result = json_decode($result, true);
  22.         // data:image/jpg;base64,
  23.         echo "<img  src=\"data:image/jpg;base64,{$result['image']}\" />";
  24.     }
  25. }
  26. (new Demo())->index();

最后贴上别人的女朋友o(╥﹏╥)o

用PHP将女友照片转成可爱的动漫头像!
用PHP将女友照片转成可爱的动漫头像!

本文网址:https://www.zztuku.com/index.php/detail-11015.html
站长图库 - 用PHP将女友照片转成可爱的动漫头像!
申明:本文转载于《CSDN》,如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐