使用face++ 实现人像抠图

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

face++人像抠图接口地址

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

参数说明:

是否必选

参数名

类型

参数说明

必选

api_key

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'\];//错误信息  
}

你可能感兴趣的:(php,yii,face++)