用PHP將女友照片轉成可愛的動漫頭像!

2022-02-12 19:00:06

在網上看到一篇將女朋友照片轉成動漫頭像的博文(java實現),emmmmm, 我不會Python, 又不會Java,更重要的是沒有女朋友! 所以我決定用萬能的PHP實現將別人女朋友照片轉成動漫頭像!

首先註冊個百度AI,然後進到人像動漫化開通控制檯(好像是前500次免費呼叫介面)。

b9e1e92495a775875cede2608a7e135.png

到我的控制檯建立應用

1bdeca49d4083f6a2a2f705987ffcb7.png

然後把Api KeySerect Key 記下來, 等下需要用來獲取AccessToken

e8f185f2921a40b58d87949cd5551e3.png

獲取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;
    }
}

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

36d15a353e5808f486a14cba424ba6a.png

68f7a1a41918881eb1e84a846135c1c.png

推薦學習:《》

以上就是用PHP將女友照片轉成可愛的動漫頭像!的詳細內容,更多請關注TW511.COM其它相關文章!