{"error_code":216201,"error_msg":"image format error","log_id":2917227316}
刚开始的时候直接把图片文件的二进制数据传上去,报错;
后来把图片转成base64格式,仍然报错;
网上也搜不到任何有用的帮助信息,没辙了。
请登录后评论
TOP
切换版块
解决了吗
返回码地址出错了,请调试地址
进行BASE64转码后再用str(img,"utf-8")转一次,文档里说要用urlencode是不对的
这种错误好像遇到的很多
遇到这种情况最好的办法就是和正常程序抓包对比
采用此方法转换base64,转换后的信息不可换行,否则报错
public static String getImageBase64(String imgPath) {
InputStream in = null;
byte[] data = null;
try {
in = new FileInputStream(imgPath);
data = new byte[in.available()];
in.read(data);
String imgStr = Base64Util.encode(data);
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
in.close();
return params;
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
怎么解决的大家~
点赞哦
非常感谢
这个也是给我造成了很大困惑的问题
7楼大哥,解决了我烦了一天的问题,非常感谢~~~~
这个论坛基本就废了,毫无意义
我一个700K的jpg,用它官方的方法识别,依然返回图片格式错误,问了一个月了,却没有一个正常的回复
没有一个好的算法,和数据模型,绝对会出错的,正常。
帮忙顶贴
参考http://blog.csdn.net/sinat_27163417/article/details/71642299
我一直调不通的原因是java自带的BASE64进行了换行处理、百度不换行好坑
不过这识别的出入好像有点不小。。。。
result:{"log_id": 81500385, "words_result_num": 3, "words_result": [{"words": " import java . awt . image bufferedimage"}, {"words": "涓? nport java.io.Fi1e;"}, {"words": " import j ] . lmagelo . imagelo ;"}]}
网上也搜不到任何有用的帮助信息,没辙了。
您好,您这个是图片格式错误,
请求图片需经过
base64编码
:图片的base64编码指将一副图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。注意:图片的base64编码是不包含图片头的,如
(data:image/jpg;base64,)
请求格式支持:PNG、JPG、JPEG、BMP,不支持GIF图片