P5.js отправляет запрос в Azure Custom Vision - PullRequest
0 голосов
/ 21 февраля 2019

Итак,

Я беру изображение с холста с помощью p5js и хочу отправить его в службу пользовательского видения Azure (код ниже).

Является ли изображение p5 даже тем жекак обычное изображение в формате js (например, когда вы делаете снимок с видео)?

Моя проблема в том, что я отправляю форму в формате json, например:

let c = get(0,0,250,250);
var http = new XMLHttpRequest();
http.open('POST', prediction_URL, true);
http.onreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
        console.log(http.responseText);
    }
} 
var objurl = window.URL.createObjectURL(new Blob([c]));
http.send({
 url: prediction_URL,
 encoding: null,
 json: false,
headers: {
  'Content-Type': 'application/octet-stream',
  'Prediction-Key': 'xxxxxxxxxxxxx'
},
body: objurl
});

Но это дает мне "401 Доступ запрещен ".

Можно ли даже отправить изображение, созданное с помощью p5, через http-запрос?

1 Ответ

0 голосов
/ 22 февраля 2019

Метод get () p5.js возвращает объект с холстом.Используйте этот объект canvas вместо пиксельного массива для создания объекта blob.Приведенный ниже код создаст большой двоичный объект, который вам нужно будет просто написать код, чтобы сохранить его, а затем поместить его в вызов.

let c = get(0,0,250,250);
c.canvas.toBlob(function(blob) {// get content as blob
    console.log("callback blob: " + blob);
    // store the blob off so you can use it in your call
}, "image/jpeg", 0.75); // use the image type and quality parameter you need

См .: HTMLCanvasElement / toBlob

...