之前一直使用的阿里雲證件照製作,由於我們的項目需要製作的要求十分高,最近發現阿里雲的證件照接口製作處理的照片不滿足我們的要求,我來發現有一家證件照研究院的製作證件照接口製作出來的效果十分好,基本滿足了我們的要求,而且他還有檢測功能,可以對製作出來的照片進行檢測
證件照研究院接口文檔地址: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];
如上我們就可以實現製作證件照