hey .i m currently creating a app with free ocr as main api for my app.currently i m in test mode and playing with this api.one thing is annoying me.i m sending base64image(which is a requirement for my app).its giving me response for for only one image but when i m testing another .png image its throwing me this:
{“OCRExitCode”:3,“IsErroredOnProcessing”:true,“ErrorMessage”:[“Not a valid base64 image. The accepted base64 image format is ‘data:<content_type>;base64,<base64_image_content>’. Where ‘content_type’ like ‘image/png’ or ‘image/jpg’ or ‘application/pdf’ or any other supported type.”],“ErrorDetails”:“Not a valid base64 image. The accepted base64 image format is ‘data:<content_type>;base64,<base64_image_content>’. Where ‘content_type’ like ‘image/png’ or ‘image/jpg’ or ‘application/pdf’ or any other supported type.”,“ProcessingTimeInMilliseconds”:“468”}
there are following questions:
1.is this api’s using caching .because first image is succesfully parsing but its throwing above error in every second images. its returning parsed result in my first base64 .png image but throwing error in another .png images.looks like api is giving me cached data for only one image?
here my code:
BufferedImage i=ImageIO.read(new File(“C:\Users\Nikki singh\Downloads\resultCropped.png”));
ByteArrayOutputStream os=new ByteArrayOutputStream();//will act as a container
ImageIO.write(i,"png",os);//STORING IMAGE STREAM INTO BASE64 FORMAT and wraping into output stream
byte[] l=os.toByteArray();
URL u =new URL("https://api.ocr.space/parse/image");
HttpsURLConnection con = (HttpsURLConnection) u.openConnection();
String im=Base64.getEncoder().withoutPadding().encodeToString(l);
//add request header
System.out.println(im);
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", "Mozilla/5.0");
con.setRequestProperty("apikey","f30145498288957");
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
JSONObject postDataParams = new JSONObject();
postDataParams.put("detectOrientation", true);
postDataParams.put("scale", true);
postDataParams.put("base64Image","data:image/png;base64,"+im);
postDataParams.put("language", "eng");
postDataParams.put("OCREngine", 2);
postDataParams.put("filetype","PNG");
con.setChunkedStreamingMode(im.length()+1000);
StringBuilder result = new StringBuilder();
boolean first = true;
for(Entry<String,Object> e:postDataParams.entrySet()) {
String key =e.getKey();
Object value=e.getValue();
result.append("&");
result.append(URLEncoder.encode(key, "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(value.toString(), "UTF-8"));
}
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
System.out.println("Utf-8:"+result.toString());
wr.writeBytes(result.toString());
wr.flush();
wr.close();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
System.out.println("Send");
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
System.out.println("-----"+response);
Gson g=new Gson();
Result f=g.fromJson(response.toString(), Result.class);
System.out.println(f.getParsedResult()[0].getParsedText().contains("Erangel"));
in.close();
both are difrrent images and giving me error as you can see in this screenshot below.
but image 2 is giving parsed result succesfull in my java post request but image 1 is giving same error in java app .whats the matter i m confused.do OCR.Space giving me cached response or am i doing wrong something.
they ARE both okay.its creating image from base64 both images are perfect but why its not working in OCR:
heres one more surprise i wanna show you:
when parsing this image by adding “==” at the end with OCREngine2 its giving me error “OCRExitcode:3”
but while same image i m sending with OCREngine1 it giving me parsed successfull but empty text(no string of recognized text) why is that happening ?
below is my image:
this is my base64Image string…when testing with OCREngine1 by adding"==" at the end of string im getting parsed succesfull but when testing with OCRENGINE2 im getting empty text…but when i remove “==” from the end of the bas64image i m getting error ocrexitcode:3 whats the problem? i m literally confused.
here s my base64 image:
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