php百度人脸识别param[image_template] is null使用BASE64图片类型json_decode返回NULL的处理解决方案

简介: php百度人脸识别param[image_template] is null使用BASE64图片类型json_decode返回NULL的处理解决方案

在使用BASE64图片类型过程中出现了NULL提示,经分析和解决过程如下。

一、转化图片为BASE64格式,注意图片的base64编码是不包含图片头的,如data:image/jpg;base64,因此用explode去除图片头。

$v1 = 'images/v1.jpg';
$v2 = 'images/v2.jpg';
$img_v1 = explode(',', imgToBase64($v1));
$img_v2 = explode(',', imgToBase64($v2));

二、$bodys接口中的JSON数据格式如下:

$bodys = "{\"image_template\":{\"image\":\"" . $img_v1[1] . "\",
\"image_type\":\"BASE64\",
\"quality_control\":\"NONE\"},
\"image_target\":{\"image\":\"$img_v2[1]\",
\"image_type\":\"BASE64\",
\"quality_control\":\"NONE\"}
}";

三、在测试过程中出现param[image_template] is null提示:

string(136) "{"error_code":222001,"error_msg":"param[image_template] is null","log_id":2010505101154,"timestamp":1587451915,"cached":0,"result":null}"

按照百度人脸识别文档,知道image_template类型错误,必须是array格式,因此b o d y s 格 式 有 错 误 , 需 要 转 换 bodys格式有错误,需要转换bodys格式有错误,需要转换bodys格式;


四、json中含有不可见字符,json_decode解析出错

for ($i = 0; $i <= 31; ++$i) {
    $bodys = str_replace(chr($i), "", $bodys);
}

五、完整代码:

$url = 'https://aip.baidubce.com/rest/2.0/face/v1/merge?access_token=' . $b->access_token;
$bodys = "{\"image_template\":{\"image\":\"" . $img_v1[1] . "\",
\"image_type\":\"BASE64\",
\"quality_control\":\"NONE\"},
\"image_target\":{\"image\":\"" . $img_v2[1] . "\",
\"image_type\":\"BASE64\",
\"quality_control\":\"NONE\"}
}";
for ($i = 0; $i <= 31; ++$i) {
    $bodys = str_replace(chr($i), "", $bodys);
}
$res = request_post($url, $bodys);
var_dump($res);


Done!

相关文章
|
6月前
|
PHP
使用PHP实现随机调用图片
使用PHP实现随机调用图片
191 0
使用PHP实现随机调用图片
|
6月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
228 0
|
1月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
60 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
3月前
|
JSON 人工智能 编译器
Go json 能否解码到一个 interface 类型的值
Go json 能否解码到一个 interface 类型的值
30 1
|
3月前
|
PHP
PHP——将网络图片转为Base64
PHP——将网络图片转为Base64
46 1
|
4月前
|
数据采集 缓存 自然语言处理
PHP将HTML标签转化为图片
通过这个方法,PHP后端能够实现将HTML内容转化为图片的功能。这种方式虽然牵涉到一些额外的安装和配置,但能够相对灵活且稳定地解冀转换需求,适用于需要在后端动态生成图片的场景。
194 1
|
5月前
|
JSON 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在使用CDAS语法同步MySQL数据到Hologres时,如果开启了字段类型宽容模式,MySQL中的JSON类型会被转换为什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
存储 JSON 关系型数据库
MySQL JSON 类型:功能与应用
MySQL JSON 类型:功能与应用
|
5月前
|
PHP
php 生成二维码图片
php 生成二维码图片
29 0
|
6月前
|
数据采集 机器学习/深度学习 存储
图片大搜罗:PHP下载器带你畅游Twitter图像海洋
构建Twitter图像下载器,使用PHP模拟请求抓取图像,通过代理IP规避限制。示例代码展示如何设置代理、用户代理和Cookie,解析HTML提取图像链接并下载。结合机器学习与元数据分析,可洞察用户行为和社会趋势。代理服务器信息及Twitter URL需自行替换。
图片大搜罗:PHP下载器带你畅游Twitter图像海洋