微信小程序的image无法显示base64的图片的问题 js截取第一帧

< video id= "video" controls= "controls" >
< source src= "./movie.ogg" >
</ video >
< div id= "output" ></ div >
< script type= "text/javascript" >
console. log( 111);
( function(){
var video, output;
var scale = 0.8;
var initialize = function() {
output = document. getElementById( "output");
video = document. getElementById( "video");
video. addEventListener( 'loadeddata', captureImage);
};
var captureImage = function() {
var canvas = document. createElement( "canvas");
canvas. width = video. videoWidth * scale;
canvas. height = video. videoHeight * scale;
canvas. getContext( '2d'). drawImage( video, 0, 0, canvas. width, canvas. height);
var img = document. createElement( "img");
img. src = canvas. toDataURL( "image/png");
output. appendChild( img);
console. log( img);
};
initialize();
})();
< / script >





在开发微信小程序的时候,一张图片需要通过WebSocket获取,WebSocket返回png图片的二进制格式的数据,然后小程序将ArrayBuffer转成base64并赋给image的src属性,如下:

const base64 = wx.arrayBufferToBase64(res.data);
that.setData({ QrCodeUrl: "data:;base64," + base64 });

这段代码在电脑上用开发工具里显示图片一直是正常的,但是发布到手机上就出错了,图片死活显示不出来,后来才发现,data:后面应该加上image/png才行,所以代码需要改成这样:

const base64 = wx.arrayBufferToBase64(res.data);
that.setData({ QrCodeUrl: "data:image/png;base64," + base64 });

问题就可以解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值