使用face++ 實現人像摳圖

face++文檔地址:https://console.faceplusplus.com.cn/documents/4887579api

face++人像摳圖接口地址數組

https://api-cn.faceplusplus.c...yii2

參數說明:框架

是否必選yii

參數名post

類型編碼

參數說明url

必選code

api_keyorm

string

調用此 API 的 API Key

必選

api_secret

string

調用此 API 的 API Secret

必選

image_base64

string

base64 編碼的二進制圖片數據

可選

return_grayscale

int

摳像後的返回值,默認爲1標識返回灰度圖及人像圖,0標識僅返回人像圖,2只返回灰度圖

返回的參數body_image標識人像摳圖的base64圖片,簡單實現以下,這裏我是用的時Yii框架的yiisoft/yii2-httpclient拓展實現

$url = 'https://api-cn.faceplusplus.com/humanbodypp/v2/segment';  
//post傳參  
$img = file\_get\_contents(XXX);//人像圖片  
$img = base64\_encode($img);  
$data = \[  
    'api\_key' => 'XXX',//api\_key  
    'api\_secret' => 'XXX',//api\_secret  
    'image\_base64' => $img,  
\];  
$client = new Client();  
$response = $client->createRequest()  
    ->setMethod('POST') // 請求方式  
    ->setUrl($url)      // 請求地址  
    ->setData($data)    //數據傳數組  
    ->setHeaders(\['Content-Type'=>'multipart/form-data'\]) //header  
    ->send();  
if ($response->isOk) {  
    //接口返回信息  
    $fileName = time() . '.png';  
    //保存人像摳圖後圖片  
    file\_put\_contents($fileName, base64\_decode($response->data\['body\_image'\]));  
    //使用intervention/image拓展給摳圖的人像加上背景色  
    $img = ImageManagerStatic::make($fileName);  
$img->fill('#64C5FF', 0, 0);  
$img->save('test.jpg');  
} else {  
    echo $response->data\['error\_message'\];//錯誤信息  
}
相關文章
相關標籤/搜索