以前一直使用的阿里云证件照制做,因为咱们的项目须要制做的要求十分高,最近发现阿里云的证件照接口制做处理的照片不知足咱们的要求,我来发现有一家证件照研究院的制做证件照接口制做出来的效果十分好,基本知足了咱们的要求,并且他还有检测功能,能够对制做出来的照片进行检测html
证件照研究院接口文档地址:http://dev.id-photo-verify.co...json
使用证件照接口前期准备:api
1:注册数组
登陆证件照研究院的官网进行注册:http://dev.id-photo-verify.com/yii2
2:建立应用app
注册成功后进入管理中心,建立一个应用,这里我使用的是应用是制做并检测证件照yii
3:制做并检测证件照接口地址post
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];
如上咱们就能够实现制做证件照