当前位置:   article > 正文

(PHP)将别人女朋友照片转成动漫头像(详细)_php图片变动漫的模型

php图片变动漫的模型

(PHP)将别人女朋友照片转成动漫头像(详细)

刚才打开CSDN首页, 看到篇将女朋友照片转成动漫头像的博文(java实现)
emmmmm, 我不会Python, 又不会Java, 更重要的是没有女朋友! 所以我决定用PHP实现将别人女朋友照片转成动漫头像

首先注册个百度AI, 然后进到人像动漫化开通控制台(好像是前500次免费调用接口)。
在这里插入图片描述
到我的控制台创建应用
在这里插入图片描述
然后把Api KeySerect Key 记下来, 等下需要用来获取AccessToken
在这里插入图片描述
获取AccessToken

  1. 先封装一个curl请求方法
<?php
class 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;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  1. 获取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;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

通过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();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

最后贴上别人的女朋友o(╥﹏╥)o
在这里插入图片描述在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/873432
推荐阅读
相关标签
  

闽ICP备14008679号