在使用文字识别的api时,我上次了图片,并转为base64格式,在在线base64转图片的工具中是可以转换为原图片的,但是调用百度就返回 216201错误,说是图片格式不对,请问怎么修改。
需要经过URL转码
不能直接传送图片的BASE64字节流,需要经过URL转码才可以
求帮忙看一下
2019-11-29 15:54:39.434007+0800 语音图像[2600:879131] {
"error_code" = 216201;
"error_msg" = "image format error";
"log_id" = 9064900028040021949;
}
Golang里面urlecode不要使用base64自带的base64.URLEncoding.EncodeToString函数,需要url.escape函数,且不需要加 image:base64/jpeg 等头部
Golang里面urlecode不要使用base64自带的base64.URLEncoding.EncodeToString函数,需要url.escape函数,且不需要加 data:image/png;base64, 等头部
谢谢看到你的已经解决了
include('./baidu/AipImageClassify.php');
$a = new AipImageClassify('xxxxx','xxxxxxx','xxxxxxxx');
$img = file_get_contents('index.jpg');$result = $a->advancedGeneral($img);print_r($result);exit;
$img = file_get_contents('index.jpg');
$result = $a->advancedGeneral($img);
print_r($result);exit;
Array( [log_id] => 8.682434735505E+17 [result_num] => 5 [result] => Array ( [0] => Array ( [score] => 0.856428 [root] => 商品-容器 [keyword] => 杯子 )
Array
(
[log_id] => 8.682434735505E+17
[result_num] => 5
[result] => Array
[0] => Array
[score] => 0.856428
[root] => 商品-容器
[keyword] => 杯子
)
[1] => Array ( [score] => 0.680532 [root] => 商品-容器 [keyword] => 纸杯 )
[1] => Array
[score] => 0.680532
[keyword] => 纸杯
[2] => Array ( [score] => 0.437052 [root] => 商品-日用品 [keyword] => 杯具 )
[2] => Array
[score] => 0.437052
[root] => 商品-日用品
[keyword] => 杯具
[3] => Array ( [score] => 0.248417 [root] => 商品-日用品 [keyword] => 一次性纸杯 )
[3] => Array
[score] => 0.248417
[keyword] => 一次性纸杯
[4] => Array ( [score] => 0.058057 [root] => 商品-容器 [keyword] => 废纸篓 )
[4] => Array
[score] => 0.058057
[keyword] => 废纸篓
"log_id": 7919109998610513980, "error_code": 216201, "error_msg": "image format error"
"log_id": 6472079510798327452
赞
我开始也出现了你们所说的问题,仔细看了下文档,在将图片转为base64之前得先将文件转为流,
$img = file_get_contents('##本地文件路径##');$img = base64_encode($img);$bodys = array( "image" => $img);
然后传入,问题解决!
不行啊,无论是直接base64编码放进去,还是base64之后urlencode放进去,一样都不行。格式png,jpg,bmp都不行。
都是显示格式错误。
下面是部分结果的输出
第一段是base64编码后
第二段是urlencode后
图片64编码后 直接传进去 不需要
urlencode这一步
png格式的就能识别,jpg格式的就不行为啥啊
我的也是,有的图片就可以,有的就不行,png就挂,jpg就可以,。。。
你的这个问题解决了吗
结果{"log_id":7593923108540150000,"error_code":216201,"error_msg":"image format error"}
我也遇到这个问题,BASE64在线转码时去掉了data:image/png;base64,BASE64转码也成功,但返回也是错误,请问如何处理的??
{ "log_id": 5264080958738565774, "error_code": 216201, "error_msg": "image format error"}
也出现216201的错误。检查了没有换行符和没有data:image/png;base64。
{"log_id": 5077449057334353533, "error_code": 216201, "error_msg": "image format error"} result -> {"log_id": 5077449057334353533, "error_code": 216201, "error_msg": "image format error"}
麻烦检查下。
参数有正确urlencode吗
需要经过URL转码
不能直接传送图片的BASE64字节流,需要经过URL转码才可以
求帮忙看一下
2019-11-29 15:54:39.434007+0800 语音图像[2600:879131] {
"error_code" = 216201;
"error_msg" = "image format error";
"log_id" = 9064900028040021949;
}
Golang里面urlecode不要使用base64自带的base64.URLEncoding.EncodeToString函数,需要url.escape函数,且不需要加 image:base64/jpeg 等头部
Golang里面urlecode不要使用base64自带的base64.URLEncoding.EncodeToString函数,需要url.escape函数,且不需要加 data:image/png;base64, 等头部
谢谢看到你的已经解决了
include('./baidu/AipImageClassify.php');
$a = new AipImageClassify('xxxxx','xxxxxxx','xxxxxxxx');
$img = file_get_contents('index.jpg');
$result = $a->advancedGeneral($img);
print_r($result);exit;
Array
(
[log_id] => 8.682434735505E+17
[result_num] => 5
[result] => Array
(
[0] => Array
(
[score] => 0.856428
[root] => 商品-容器
[keyword] => 杯子
)
[1] => Array
(
[score] => 0.680532
[root] => 商品-容器
[keyword] => 纸杯
)
[2] => Array
(
[score] => 0.437052
[root] => 商品-日用品
[keyword] => 杯具
)
[3] => Array
(
[score] => 0.248417
[root] => 商品-日用品
[keyword] => 一次性纸杯
)
[4] => Array
(
[score] => 0.058057
[root] => 商品-容器
[keyword] => 废纸篓
)
)
)
"log_id": 7919109998610513980, "error_code": 216201, "error_msg": "image format error"
"log_id": 6472079510798327452
赞
我开始也出现了你们所说的问题,仔细看了下文档,在将图片转为base64之前得先将文件转为流,
$img = file_get_contents('##本地文件路径##');
$img = base64_encode($img);
$bodys = array(
"image" => $img
);
然后传入,问题解决!
不行啊,无论是直接base64编码放进去,还是base64之后urlencode放进去,一样都不行。格式png,jpg,bmp都不行。
都是显示格式错误。
下面是部分结果的输出
第一段是base64编码后
第二段是urlencode后
不行啊,无论是直接base64编码放进去,还是base64之后urlencode放进去,一样都不行。格式png,jpg,bmp都不行。
都是显示格式错误。
图片64编码后 直接传进去 不需要
urlencode这一步
png格式的就能识别,jpg格式的就不行为啥啊
我的也是,有的图片就可以,有的就不行,png就挂,jpg就可以,。。。
你的这个问题解决了吗
结果{"log_id":7593923108540150000,"error_code":216201,"error_msg":"image format error"}
我也遇到这个问题,BASE64在线转码时去掉了data:image/png;base64,BASE64转码也成功,但返回也是错误,请问如何处理的??
{
"log_id": 5264080958738565774,
"error_code": 216201,
"error_msg": "image format error"
}
也出现216201的错误。检查了没有换行符和没有data:image/png;base64。
{"log_id": 5077449057334353533, "error_code": 216201, "error_msg": "image format error"}
result -> {"log_id": 5077449057334353533, "error_code": 216201, "error_msg": "image format error"}
麻烦检查下。
参数有正确urlencode吗