使用阿里云接口实现证件照制作

之前制作证件照使用face++的人像抠图和自己实现向face++抠出来的透明图加上自己设置的背景实现证件照的制作,后面发现如果拍的照片不是很正规的话,使用抠图再增加背景色后制作成的证件照感觉不是很好,后来发现阿里云有一个自动证件照制作的接口

证件照制作地址:https://market.aliyun.com/products/57124001/cmapi030523.html

一:证件照制作接口前期准备

1:购买证件照制作接口包

在使用证件照制作接口之前需要购买接口包,购买之后我们会在管理控制台看到接口包对应的一些接口所需信息

阿里云管理控制台地址:https://market.console.aliyun.com/imageconsole/index.htm
使用阿里云接口实现证件照制作_第1张图片
2:证件照制作接口调用地址

http(s)://alidphoto.aisegment.com/idphoto/make

3:证件照制作接口所需header

'Content-Type'=>'application/json; charset=UTF-8',
'Authorization' => 'APPCODE XXXXXX(管理控制台看到的AppCode)'

4:post传参

{
    "type": "jpg", # 图片类型,目前支持"jpg"和"png"两种类型
    "photo": '图片数据BASE64编码',
    "spec": "证件照规格ID",  // 见证件照规格列表
    "bk": "背景颜色" // 见证件照颜色列表
}

证件照规格和背景颜色查看pdf下载:开发接口参考文档-证件照规格列表.pdf
5:证件照制作简单实例:

$img = '证件照图片地址';
$data = [
    'type' => 'jpg',
    'photo' => $this->fileToBase64($img),
    'spec' => 115,//证件照规格
    'bk' => '#338FB2'//证件照背景颜色
];
$url = 'https://alidphoto.aisegment.com/idphoto/make';
$client = new Client();
$response = $client->createRequest()
    ->setMethod('POST') // 请求方式
    ->setUrl($url)      // 请求地址
    ->setData($data)    //数据传数组
    ->setFormat(Client::FORMAT_JSON)
    ->setHeaders([
        'Content-Type'=>'application/json; charset=UTF-8',
        'Authorization' => 'APPCODE XXX'
    ]) //header
    ->send();
$result = $response->data;
if ($response->isOk) {
    $data = $result['data'];
    if ($result['status'] == 0) {
        $img = $data['result'];
        $saveFile = '证件照保存地址';
        $content = file_get_contents($img);
        $saveImg = file_put_contents($saveFile, $content);
    }
} else {
    echo $response->data['errmsg'];
}

将图片转成base64方法如下:

/**
 * 图片转base64
 */
public function fileToBase64($file){
    $base64_file = '';
    if(file_exists($file)){
        $mime_type= mime_content_type($file);
        $base64_data = base64_encode(file_get_contents($file));
        $base64_file = 'data:'.$mime_type.';base64,'.$base64_data;
    }
    return $base64_file;
}

根据如上就可以实现证件照制作功能

你可能感兴趣的