- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<script type="text/javascript">
var video = document.getElementById('video');
var url1;
// Get access to the camera!
if(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
// Not adding `{ audio: true }` since we only want video now
navigator.mediaDevices.getUserMedia({ video: true }).then(function(stream) {
video.src = window.URL.createObjectURL(stream);
if( video.play())
{
Console.log("okokok");
}
else
{
Console.log("nonon");
}
});
}
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var video = document.getElementById('video');
// Trigger photo take
document.getElementById("snap").addEventListener("click", function() {
context.drawImage(video, 0, 0, 640, 480);
});
$(function () {
var alr2=this.url1;
var params = {
// Request parameters
"returnFaceId": "true",
"returnFaceLandmarks": "false",
"returnFaceAttributes": "age",
};
$.ajax({
url: "https://westus.api.cognitive.microsoft.com/face/v1.0/detect?" + $.param(params),
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("Content-Type","application/json");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","8b99a9ed839a40a08aa8b529ef0f9b8c");
},
type: "POST",
// Request body
data: '{ "url": }'
})
.done(function(data) {
alert("success");
console.log(data[0].faceAttributes.age)
})
.fail(function() {
alert("error");
});
});
这是我的代码,在这张图片中是由 Canvas 绘制的,我想通过 Canvas 制作该图像的 url 并将其传递给 json 对象,但是请如何帮助我,我陷入这个问题一个月了,这是行在 json 对象中传递 url 类型:“帖子”, //请求体 数据:'{“url”:}
最佳答案
您使用的 API 接受 octet-stream
请求。所以就努力吧。
您只需发布一个 Blob,并从 Canvas 中获取此 Blob,您只需使用 toBlob 方法,该方法可以是多文件(或专有的 msToBlob)。
所以这会给你类似的东西
function sendToMS(callback){
canvas.toBlob(function(blob){
var xhr = new XMLHttpRequest();
xhr.onload = e=>callback(xhr.response);
xhr.open('POST', 'https://westus.api.cognitive.microsoft.com/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false&returnFaceAttributes=age');
xhr.setRequestHeader("Content-Type", "application/octet-stream");
xhr.setRequestHeader("Ocp-Apim-Subscription-Key", YOUR_KEY);
xhr.send(blob);
}, 'image/jpeg', .8);
}
<小时/>
其他不相关但重要的说明:URL.createObjectURL(MediaStream)
已被弃用,如果您不撤销创建的 blobURI,它会在某种程度上产生危险:它将阻止硬件状态打开。
相反,应该使用 MediaElement.srcObject = MediaStream
。
作为一个完整的代码块:
function checkMyFace(){
const YOUR_KEY = prompt('please paste your key');
if(!YOUR_KEY){
console.warn('you need a Microsoft Face API Key');
return;
}
function sendToMS(callback) {
canvas.toBlob(function(blob) {
var xhr = new XMLHttpRequest();
xhr.onload = e => callback(xhr.response);
xhr.open('POST', 'https://westus.api.cognitive.microsoft.com/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false&returnFaceAttributes=age');
xhr.setRequestHeader("Content-Type", "application/octet-stream");
xhr.setRequestHeader("Ocp-Apim-Subscription-Key", YOUR_KEY);
xhr.send(blob);
}, 'image/jpeg', .8);
}
navigator.mediaDevices.getUserMedia({
video: true
}).then(s => {
vid.srcObject = s;
return vid.play();
})
.then(_ => {
canvas.width = vid.videoWidth;
canvas.height = vid.videoHeight;
canvas.getContext('2d').drawImage(vid, 0, 0);
sendToMS(text => console.log(text));
})
}
/* untested toBlob polyfill */
(function() {
if (HTMLCanvasElement.prototype.toBlob) return;
if (HTMLCanvasElement.prototype.msToBlob) {
Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
value: function(cb, type, quality) {
var c = this;
setTimeout(function() {
cb(c.msToBlob(type, quality));
}, 0);
}
});
} else {
Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
value: function(cb, type, quality) {
var c = this;
setTimeout(function() {
var binStr = atob(c.toDataURL(type, quality).split(',')[1]),
len = binStr.length,
arr = new Uint8Array(len);
for (var i = 0; i < len; i++) {
arr[i] = binStr.charCodeAt(i);
}
cb(new Blob([arr], {
type: type || 'image/png'
}));
}, 0);
}
});
}
})();
checkMyFace();
<video id="vid"></video>
<canvas id="canvas"></canvas>
且保护性低于 SO-snippets® fiddle for chrome .
关于javascript - 如何将canvas绘制的图像的url传递给json对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43332448/
我学习 SDL 二维编程已有一段时间了,现在我想创建一个结合使用 SDL 和 OpenGL 的程序。我是这样设置的: SDL_Init(SDL_INIT_VIDEO); window = SDL_Cr
尝试查找可在地块中使用的不同类型项目的列表 来自不同样本的投影类型: projection = list(type = "equirectangular") projection = list(typ
我正在尝试使用 Java Graphics API 绘制 GIF,但无法使用下面的代码成功绘制 GIF。仅绘制 GIF 的第一张图像或缩略图,但不播放。 public void paintCompon
我目前正在使用 JFrame 并尝试绘制一个矩形,但我不知道如何执行代码 paint(Graphics g),如何获取 Graphics 对象? package com.raggaer.frame;
这个领域的新手,希望得到一些帮助。 我有一个"Missile.java" 类,我在那里画东西。我想绘制一个 ImageView,我正在使用以下代码: ImageView v = (ImageView)
下面列出了圆形的例子 这是我的 JavaScript 代码。 最佳答案 假设您的 randomColor 是正确的,您只需要: 从 canvas.onclick 中移除 context.clearR
我在绘制和缩放 ImageView 时遇到问题。请帮帮我.. 当我画一些东西然后拖动或缩放图像时 - 绘图保留在原处,如您在屏幕截图中所见。而且我只需要简单地在图片上绘图,并且可以缩放和拖动这张图片。
我们可以在形式之外绘制图像和文本...我的意思是在字面上... 我知道问这个问题很愚蠢但是我们能不能... 最佳答案 您可以通过创建表单并将其 TransparentColor 属性设置为背景色来“作
我在绘制/布局期间收到 3 个对象分配警告 super.onDraw(canvas); canvas.drawColor(Color.WHITE); Paint textPaint = new Pai
我有一个示例时间序列数据框: df = pd.DataFrame({'year':'1990','1991','1992','1993','1994','1995','1996',
我试图想出一种简洁的方法来绘制 R 数据框中所有列的 GridView 。问题是我的数据框中既有离散值又有数值。为简单起见,我们可以使用 R 提供的名为 iris 的示例数据集。我会使用 par(mf
我有一个由 10 列和 50 行组成的 data.frame。我使用 apply 函数逐列计算密度函数。现在我想绘制我一次计算的密度。 换句话说,而不是绘图... plot(den[[1]]) plo
我想知道我们如何才能在第一个和第二个组件之外绘制个人,如下所示: 最佳答案 这可能有效: pc.cr <- princomp(USArrests, cor = TRUE) pairs(pc.cr$lo
我是Pandas和matplotlib的新手,想绘制此DataFrame season won team matches pct_won 0 20
我正在尝试为 distplot 子图编写一个 for 循环。 我有一个包含许多不同长度列的数据框。 (不包括 NaN 值) fig = make_subplots( rows=len(asse
我想创建一个具有密度的 3d 图。 我使用函数 density 首先为特定的 x 值创建一个二维图,然后该函数创建密度并将它们放入 y 变量中。现在我有第二组 x 值并将其再次放入密度函数中,然后我得
全部, 我一直在研究全局所有 MTB 步道的索引。我是 Python 人,所以对于所有涉及的步骤,我都尝试使用 Python 模块。 我能够像这样从 OSM 立交桥 API 中获取关系: from O
我正在使用 e1071 包中的支持向量机对我的数据进行分类,并希望可视化机器实际如何进行分类。但是,在使用 plot.svm 函数时,出现无法解决的错误。 脚本: library("e1071") d
我制作了以下图表,它是使用 xts 对象创建的。 我使用的代码很简单 plot(graphTS1$CCLL, type = "l", las = 2, ylab = "(c)\nCC for I
在绘制状态图时,您如何知道哪些状态放在框中,哪些状态用于转换箭头?我注意到转换也是状态。 我正在查看 this page 上的图 1 : 最佳答案 转换不是状态。转换是将对象从一种状态移动到下一种状态
我是一名优秀的程序员,十分优秀!