您现在的位置是:网站首页>>其他>>阿里云

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

发布时间:2020-09-14 16:10:05作者:wangjian浏览量:133点赞量:0

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

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

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

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

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

    阿里云管理控制台地址:https://market.console.aliyun.com/imageconsole/index.htm

    image.png

    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;
    }

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

0 +1