2

Currently I am using Ionic to develop a Facial Recognition app. I am using Microsoft's Face API for the same.

My problem is I keep getting Error 400: Decoding error, image format unsupported.

After doing some research, I ran into this link

Quoting START,

When you're submitting a binary payload, you should not base64 encode it. Here's what you might do instead..

URI uri = builder.build();
HttpPost request = new HttpPost(uri);
request.setHeader("Ocp-Apim-Subscription-Key", "...");

File file = new File("..."); 
FileEntity reqEntity = new FileEntity(file, ContentType.APPLICATION_OCTET_STREAM);
request.setEntity(reqEntity);

Quoting END

With Ionic/AngularJS, the captured image using Device Camera or selected from Image Gallery is returned in the form of base64 string. So I looked for ways to decode the data into Binary using this gist but still failed.

Here's my controller code where I make the API call.

$scope.postToAPI = function () {
             // make http call to MS cognitive API
                var formData = new FormData();
                formData.append('file', $scope.picture);
                $http.post($scope.cognitiveServices.endpoint, formData, {
                    headers: { 'Content-Type': 'application/octet-stream', 'Ocp-Apim-Subscription-Key':$scope.cognitiveServices.apiKey }
                }).success(function (data) {
                    console.log(JSON.stringify(data));
                    alert("Awesome");
                }).error(function (err) {
                    alert("Fail ->" + err.code + " " + err.message);
                    console.log("Some error occured");
                });
            }

I have

  • tried setting transform:angular.identity and Content-Type: undefined
  • tried sending image without Form Data (just a random trial)
  • tried converting base64 string to Uint8 Array (by following the solution to this SO question)

All my attempts so far have failed. Can someone explain what I am doing wrong?

P.S: This is my first time with Ionic framework.

Community
  • 1
  • 1
BiscuitBoy
  • 471
  • 6
  • 15

0 Answers0