今天想到一个问题,如果我们通过摇一摇可以直接拨打电话、可以直接打开网页,那么我们可不可以通过摇一摇打开一个包括我们微信公众号或者微信客服的二维码页面,然后直接长按识别添加好友呢;
首先我们需要知道利用jquery的二维码生成插件jquery.qrcode.min.js,制作的二维码是在canvas元素中的。而微信中我们点击的那个二维码则是img元素。这时,我们就会想,只要把canvas中的二维码转换成img形式。
function convertImageToCanvas(image){ //创建canvas DOM对象,并设置其宽高和图片一样 var canvas = document.createElement("canvas"); canvas.width = image.width; canvas.height = image.height; //坐标(0,0)表示从此处开始绘制,相当于偏移 canvas.getContext("2d").drawImage(image,0,0); return canvas; }
// 从canvas提取图片image function convertCanvasToImage(canvas){ //新Image对象,可以理解为DOM; var image = new Image(); //canvas.toDataURL返回的是一串Base64编码的URL,当然,浏览器自己肯定支持 //指定格式PNG image.src = canvas.toDataURL("image/png"); return image; }