之前一直使用的阿里云证件照制作,由于我们的项目需要制作的要求十分高,最近发现阿里云的证件照接口制作处理的照片不满足我们的要求,我来发现有一家证件照研究院的制作证件照接口制作出来的效果十分好,基本满足了我们的要求,而且他还有检测功能,可以对制作出来的照片进行检测
证件照研究院接口文档地址:http://dev.id-photo-verify.co...
使用证件照接口前期准备:
1:注册
登录证件照研究院的官网进行注册:http://dev.id-photo-verify.com/
2:创建应用
注册成功后进入管理中心,创建一个应用,这里我使用的是应用是制作并检测证件照
3:制作并检测证件照接口地址
http://apicall.id-photo-verif...
4:post传参
接口的返回参数如下:
以上的返回参数,我们主要使用到了img_wm_url_list参数和file_name参数,其他以解检测参数,我们可以根据我们的需求来使用即可
img_wm_url_list参数返回的是带水印的证件照图片
此接口是免费的所有只能返回带水印的证件照,如果需要无水印的证件照的话,我们需要使用file_name参数值来调用另一个接口,那个接口是收费的,具体操作详情请查看
https://www.wj0511.com/site/d...
5:代码实例(这里我使用的是Yii的yiisoft/yii2-httpclient插件调用接口)
$file = 'XXX';//图片地址
$mime_type= mime_content_type($file);
//将图片进行base64编码
$base64_data = base64_encode(file_get_contents($file));
$base64_file = $base64_data;
$data = [
'file' => $base64_file,//需要制作的base64照片
'spec_id' => '1',//已有的规格ID,具体参考文档
'app_key' => 'XXX',//已申请的app_key
'is_fair' => 1,//是否美颜
//美颜参数
'fair_level' => [
'leyelarge' => 0.2,
'reyelarge' => 0.2,
'mouthlarge' => 0,
'skinwhite' => 0.2,
'skinsoft' => 0.2,
'coseye' => 0,
'facelift' => 0.2,
],
'ppi' => 300,
'background_color' => [[
'start_color' => 3379122,
'color_name' => 'blue',
'enc_color' => 3379122,
]],
'hairline_top_max_p' => '200px',
'hairline_top_min_p' => '100px',
'facial_width_max_p' => 300,
'facial_width_min_p' => 180,
'file_size_max' => 204800,
'file_size_min' => 102400,
//下面是需要检测的参数,值越小越严
'facial_pose' => 10,//人脸姿态
'sight_line' => 20,//视线水平
'face_contrast' => 60,//视线水平
'facial_shelter' => 80,//面部无遮挡
'eyes_close' => 50,//闭眼
'eyes_nature' => 10,//视线自然
'mouse_nature' => 50,//嘴巴自然
'shoulder_equal' => 1,//肩膀等高
'face_unbalance' => 70,//阴阳脸
'glasses_glare' => 20,//眼镜反光
'face_blur' => 80,//模糊程度
'face_over_kbt' => 60,//过曝光
'bg_shadow' => 10,//背景阴影
'incomplete_head' => 60,//头部完整
'face_too_dark' => 80,//照片过暗
'body_posture' => 60,//身体姿态 身子不正,自拍时斜向下,举手,手放脑后,抠鼻孔,托腮等
'hat_threshold' => 20,//帽子检测
];
$client = new Client();
$response = $client->createRequest()
->setMethod('POST') // 请求方式
->setUrl('http://apicall.id-photo-verify.com/api/cut_check_pic') // 请求地址
->setData($data) //数据传数组
->setHeaders(['Content-Type'=>'application/json']) //header
->setFormat(Client::FORMAT_JSON) //提交的数据的格式
->send();
//获取检测结果,1表示通过,0表示失败
$result = isset($response->data['result']) ? $response->data['result'] : [];
$checkResult = isset($result['check_result']) ? $result['check_result'] : [];
//保存水印照片
$savePath = '保存地址';
$img = file_get_contents($response->data['result']['img_wm_url_list'][0]);
file_put_contents($savePath, $img);
//获取file_name
$fileName = $response->data['result']['file_name'][0];
如上我们就可以实现制作证件照