Неверный запрос 400 при отправке изображения в виде base64 или BLOB-объекта в MS Face Api, Angular 7 - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь отправить мое изображение base64 в кодировке или в виде BLOB-объекта, или bufferArray в Microsoft Face Api, чтобы узнать мой возраст. Я всегда получаю ошибку Bad Request 400: изображение в маленьком или неправильном формате. Я использую веб-камеру ngx для создания моего изображения base64 после съемки с помощью веб-камеры.

Я знаю, что могу отправить его в виде URL, сначала загрузив свое изображение, а затем отправив правильный URL-адрес, но я хочу попробовать отправить изображение в локальное хранилище в виде двоичных данных.

Я пытался отправить данные моего изображения в формате base64: 9j / 4AAQSkZJRgABAQAAAQABAAD… V5LjZGO / vU70eVWYKZCynsT6ihzRj5ONxb7QqMp4Z8n9H / 9k =

И в качестве URL-адреса данных изображения: data: image / jpeg; base64, / 9j / 4AAQSkZJRgABAQAAAQABAAD… V5LjZGO / vU70eVWYKZCynsT6ihzRj5ONxb7QqMp4Z8n9H / 9k =

И как Blob: Uint8Array (58373) [255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 1, 0, 0, 1, 0, 1, 0 , 0, 255, 219, 0, 67, 0, 3, 2, 2, 2, 2, 2, 3, 2, 2, 2, 3, 3, 3, 3, 4, 6, 4, 4, 4 , 4, 4, 8, 6, 6, 5, 6, 9, 8, 10, 10, 9, 8, 9, 9, 10, 12, 15, 12, 10, 11, 14, 11, 9, 9 , 13, 17, 13, 14, 15, 16, 16, 17, 16, 10, 12, 18, 19, 18, 16, 19, 15, 16, 16, 16, 255, 219, 0, 67, 1 , 3, 3, 3, 4, 3, 4,…]

но любой из них имеет успех с ответом.

App.component.ts

(моя библиотека веб-камеры ngx помогает мне с помощью веб-камеры генерировать изображение в виде base64 или URL-адреса данных: переменная, в которой я храню данные моего изображения, называется "webcamImage")

/* I will not write the functions that helps ngx webcam do with it function,
*/

/* this function is in where I send my variable with the image data as base64
*/

getPersonAge( ){

    this.data.getPersonAge(this.webcamImage.imageasBase64).subscribe((data: 
       string) =>{
      this.persona = data;
      console.log(this.persona);
    })
  }

data.service.ts

constructor(public http: HttpClient){    }

 public url =  
'https://eastus2.api.cognitive.microsoft.com/face/v1.0/detect? 
 returnFaceAttributes=age,gender';

getPersonAge(imageUrl : any){

    const httpOptions = {
        headers: new HttpHeaders({
          'Content-Type':  'application/octet-stream',
          'Ocp-Apim-Subscription-Key':'xxxxxxxxxxxx',
           'processData': 'false'
        }) }


      return this.http.post(this.url,{ data:imageUrl}, httpOptions)


 }

Какой правильный формат изображения для его правильной отправки в MS Face Api, без использования альтернативного URL-изображения.

...