Публикация в Microsoft Cognitive Face API с использованием Ionic - AngularJS

В настоящее время я использую Ionic для разработки приложения распознавания лиц. Я использую Microsoft Face API для того же.

Моя проблема в том, что я продолжаю получать Error 400: Decoding error, image format unsupported.

Проведя некоторые исследования, я наткнулся на эту ссылку

Цитируя СНВ,

Когда вы отправляете двоичную полезную нагрузку, вам не следует кодировать ее в base64. Вот что вы могли бы сделать вместо этого..

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);

Цитирование END

С помощью Ionic/AngularJS захваченное изображение с помощью камеры устройства или выбранное из галереи изображений возвращается в виде строки base64. Поэтому я искал способы декодировать данные в двоичный файл, используя эту суть, но все равно не получилось.

Вот мой код контроллера, где я делаю вызов API.

$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");
                });
            }

я имею

  • попробовал установить transform:angular.identity и Content-Type: не определено
  • попытался отправить изображение без данных формы (просто случайная пробная версия)
  • попытался преобразовать строку base64 в массив Uint8 (следуя решению этого SO вопроса)

Все мои попытки пока не увенчались успехом. Может кто-нибудь объяснить, что я делаю не так?

PS: это мой первый раз с Ionic Framework.

0 ответов

Другие вопросы по тегам