腾讯人脸融合接口
发表于 2017-01-18
字数统计 1751
被 1576 人阅读
根据说明文档写就行了,基本不而要做配置,直接使用下面代码就能调用接口。把 $app_key = 'Your_app_key';
和 $app_id = 'Your_app_id';
两个参数替换成自己的就行。要注意的是请求和回复的图片参数都是Base64位的图片格式,并且不带Base64的Data头部分。
/*
* 人脸整合
*/
public function faceFuse($img)
{
// 基本信息
$app_key = 'Your_app_key';
$app_id = 'Your_app_id';
$nonce_str = rand(10000, 99999);
$time_stamp = time();
$model = 6746;
// 处理基本信息
$image = ltrim(strstr($img, ','), ',');
// 拼接字符串,并签名
$S = 'app_id=' . $app_id . '&image=' . urlencode($image) . '&model=' . $model . '&nonce_str=' . $nonce_str . '&time_stamp=' . $time_stamp . '&app_key=' . $app_key;
$sign = strtoupper(md5($S));
// 构建请求的数组
$post_data = array(
'app_id' => $app_id,
'time_stamp' => $time_stamp,
'nonce_str' => $nonce_str,
'sign' => $sign,
'image' => $image,
'model' => $model
);
// 调用人脸整合的接口
$x = $this->send_post('https://api.ai.qq.com/fcgi-bin/ptu/ptu_facemerge', $post_data);
$object = json_decode(json_encode(json_decode($x)), true);
// 获取返回内容拼接并返回
return json_encode($object);
}
//发送post请求
function send_post($url, $post_data)
{
$postdata = http_build_query($post_data);
$options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type:application/x-www-form-urlencoded',
'content' => $postdata,
'timeout' => 15 * 60
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}