以前一直使用的阿里雲證件照製做,因爲咱們的項目須要製做的要求十分高,最近發現阿里雲的證件照接口製做處理的照片不知足咱們的要求,我來發現有一家證件照研究院的製做證件照接口製做出來的效果十分好,基本知足了咱們的要求,並且他還有檢測功能,能夠對製做出來的照片進行檢測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];
如上咱們就能夠實現製做證件照