之前准备使用Flutter 调百度的OCR识别,一直遇到这个问题,困扰了我很久。
{"error_code":216201,"error_msg":"image format error"}
解决方案
- data:image/png;base64,//如果base64有这个,要先移除
- Uri.encodeComponent(base64);//最后关键一步需要在encode一遍
完整的调用
void executeOcr(XFile file) async {
Uint8List imageBytes = await file.readAsBytes();
String base64 = base64Encode(imageBytes);
String po = Uri.encodeComponent(base64);
String map = "image=$po";
String url = "rest/2.0/ocr/v1/general_basic";
return requestData(
"$url?access_token=xxx",
method: Method.POST,
params: map);
}
网友评论