百度api调用的一些问题
使用 百度去调用人脸库前台返回的编码是base64但是 后台交给 百度去检索报了 222203 image check fail求 大神指教 我是前台编码 base64 出问题 还是? 后台 调用出问题前台:
<!doctype html>
<html lang="en">
<head>
<title>js调用摄像头拍照上传图片</title>
<meta charset="utf-8">
</head>
<body>
<button>开启摄像头</button>
<video id="video" width="500px" height="500px" autoplay="autoplay"></video>
<canvas id="canvas" width="500px" height="500px"></canvas>
<button>拍照</button>
<!--<img id="imgTag" src="" alt="imgTag">-->
<button>关闭摄像头</button>
<script src="base64.js"></script>
<script src="js/jquery-3.3.1.js"></script>
<script>
let mediaStreamTrack=null; // 视频对象(全局)
function openMedia() {
let constraints = {
video: { width: 500, height: 500 },
audio: false
};
//获得video摄像头
let video = document.getElementById('video');
let promise = navigator.mediaDevices.getUserMedia(constraints);
promise.then((mediaStream) => {
mediaStreamTrack = typeof mediaStream.stop === 'function' ? mediaStream : mediaStream.getTracks();
video.srcObject = mediaStream;
video.play();
});
}
// 拍照
function takePhoto() {
//获得Canvas对象
var video = document.getElementById('video');
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, 500, 500);
// toDataURL---可传入'image/png'---默认, 'image/jpeg'
var img = document.getElementById('canvas').toDataURL();
// var base = img.split("base64,");
// alert(base);
console.log(base);
// 这里的img就是得到的图片
// console.log('img-----', img);
/*
* 发送这个数据
* */
$.ajax({
type:"post",
url:"testServlet",
data:{
"base":img,
"flag":"queryfacekey"
},
dataType: "json",
success:function(json){
location.href = "index.html";
// if("登录成功"==json.mess){
// window.parent.location.replace("<%=path%>/main.jsp");
// }else{
// $.MsgBox.Alert("消息",json.mess);
//
location.href = "login.html";
},
async:true,
error:function(){
alert("error");
}
});
// document.getElementById('imgTag').src=img;
}
// 关闭摄像头
function closeMedia() {
mediaStreamTrack.stop();
}
</script>
</body> 后台 我觉得 写的也没问题大神能否指导一下 cb奉上 这个地方 base64 这样编码 转 canvas to dataURL 是否会出现一些问题呢 有哪位 大佬能 帮我试试用过百度API 的 传入的base64格式图片需要去掉图片头信息,即去掉data:image/jpg;base64文件头
//var base = img.split("base64,");
你上面这句好像就是提取base64,后面的内容,但是被你注释了。
实际就是传这个var base定义的参数
base64头没去呀兄弟 Takitooru 发表于 2020-5-6 14:54
传入的base64格式图片需要去掉图片头信息,即去掉data:image/jpg;base64文件头
//var base = img.split("b ...
就是说 我不用改这个页面了吗 Takitooru 发表于 2020-5-6 14:54
传入的base64格式图片需要去掉图片头信息,即去掉data:image/jpg;base64文件头
//var base = img.split("b ...
老哥能否指导一下{:1_904:} whizzcyf 发表于 2020-5-14 14:27
老哥能否指导一下
var img = document.getElementById('canvas').toDataURL();
var base = img.split("base64,");
....
.....
....
.....
$.ajax({
type:"post",
url:"testServlet",
data:{
"base":base,
"flag":"queryfacekey"
}, Takitooru 发表于 2020-5-14 16:07
var img = document.getElementById('canvas').toDataURL();
var base = img.split("base64,");
... ...
好的 这个页面有点丑 老哥 能否给个思路 怎么去优化我不想把 拍摄完的照片展示在页面上但是不展示 又 传不了 数据报错
页:
[1]