[введите описание изображения здесь] [1] Я пытался использовать лазурную когнитивную услугу «распознавания лица».При передаче изображения в виде URL я могу получить положительный ответ от службы, но при передаче после преобразования изображения в байтах служба выдает ошибку: {"code": "InvalidImageSize", "message": "Размер изображенияслишком маленький."} Я удостоверился, что в режиме отладки размер байта после преобразования составил 1194 КБ, что значительно ниже предела (от 1 КБ до 6 МБ).Хотя я не уверен, что я делаю неправильно: |
Я пытался преобразовать изображение в байты несколькими способами, но все прошло напрасно.
Моя конечная цель: вместо чтения изображения излокально, мне нужно принять base64 представление изображения и вызвать эту службу распознавания лиц.
Любая помощь будет высоко ценится, спасибо.
String photo = "C:\\dev\\check.jpeg";
try {
byte[] readAllBytes = Files.readAllBytes(Paths.get(photo));
ByteArrayEntity reqEntity = new ByteArrayEntity(readAllBytes, ContentType.APPLICATION_OCTET_STREAM);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.set("Ocp-Apim-Subscription-Key", "xxxxxxxxxxxx");
Map<String, String> params = new HashMap<>();
params.put("returnFaceId", "true");
params.put("recognitionModel", "recognition_02");
params.put("detectionModel", "detection_02");
ResponseEntity<List<DetectFaceRes>> exchange = restTemplateFaceApiService.exchange(getUri(DETECT_FACE.getMapping()), HttpMethod.POST, new HttpEntity<>(reqEntity, headers), new ParameterizedTypeReference<List<DetectFaceRes>>(){}, params);
if(responseHasTargetFace(exchange)) {
return exchange.getBody();
}
log.error("some error");
throw someExpception()
}
Error:
{
"code": "InvalidImageSize",
"message": "Image size is too small."
}
[1]: https://i.stack.imgur.com/JJH8U.jpg