之前制作证件照使用face++的人像抠图和自己实现向face++抠出来的透明图加上自己设置的背景实现证件照的制作,后面发现如果拍的照片不是很正规的话,使用抠图再增加背景色后制作成的证件照感觉不是很好,后来发现阿里云有一个自动证件照制作的接口
证件照制作地址:https://market.aliyun.com/products/57124001/cmapi030523.html
一:证件照制作接口前期准备
1:购买证件照制作接口包
在使用证件照制作接口之前需要购买接口包,购买之后我们会在管理控制台看到接口包对应的一些接口所需信息
阿里云管理控制台地址:https://market.console.aliyun.com/imageconsole/index.htm
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;
}
根据如上就可以实现证件照制作功能
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。