P5.js将请求发送到Azure自定义愿景

时间:2019-02-21 17:51:52

标签: javascript azure computer-vision p5.js

所以

我使用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 Acces Denied”。

是否甚至可以通过http请求发送使用p5创建的图像?

1 个答案:

答案 0 :(得分:1)

p5.js的get()方法返回一个具有画布的对象。使用此画布对象而不是像素数组来创建blob对象。下面的代码将创建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