如何在OCR认知中使用application / octet-stream发送图像

时间:2017-04-07 11:58:08

标签: javascript microsoft-cognitive

您好我正在尝试使用来自Microsoft的OCR API,它期望Content-type application / octet-stream和body发布二进制文件。 我尝试将图像发送为Base64(二进制),只是二进制,但它没有用。 有人知道这个图像需要如何发送?

Link to documentation

1 个答案:

答案 0 :(得分:2)

是的,您只需将其作为BlobFile发送(这几乎是相同的事情)。

使用XMLHttpRequest API的示例代码:

var xhr = new XMLHttpRequest();
xhr.onload = do_something_with_this_JSON;
xhr.open('POST', 'https://westus.api.cognitive.microsoft.com/vision/v1.0/ocr');
xhr.setRequestHeader("Content-Type", "application/octet-stream");
xhr.setRequestHeader("Ocp-Apim-Subscription-Key", YOUR_KEY);
xhr.send(blob);

现在关于如何获得Blob,这实际上取决于您从哪里获取图像。

  • 如果它来自<input type="file">,那么您可以这样发送。
  • 如果它来自请求(那么为什么不将网址发送为application/JSON?),您可以请求响应为blob(xhr.responseType = "blob"fetch().then(resp => resp.blob())
  • 如果你有画布,那么你可以使用它的toBlob方法。
  • 如果您只有dataURI,请检查this Q/A