转载:http://www.cnblogs.com/sapho/p/6143819.html
1. 把img转换为canvas对象
复制代码
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;
}
复制代码
2. 把canvas转换为img
复制代码
// 从canvas提取图片image
function convertCanvasToImage(canvas){
//新Image对象,可以理解为DOM;
var image = new Image();
//canvas.toDataURL返回的是一串Base64编码的URL,当然,浏览器自己肯定支持
//指定格式PNG
image.src = canvas.toDataURL("image/png");
return image;
}
复制代码
示例代码:
复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Canvas与Image互相转换示例</title>
</head>
<body>
<img src="./list-icon-5.png" alt="" id="photo" width="17" height="24">
<div id="canvasDiv" style="width: 300px; height: 30px;"></div>
<div id="convertedImg"></div>
<script src="./jquery-1.11.3.min.js"></script>
<script>
$(function(){
// 把image转换为canvas对象
var photo = document.getElementById('photo');//这个必须用原生
var cDiv = convertImageToCanvas(photo);
$("#canvasDiv").append(cDiv);
// image-->canvas
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的
var myCanvas = document.getElementsByTagName("canvas")[0];
var img = convertCanvasToImage(myCanvas);
$("#convertedImg").append(img);
// canvas-->image
function convertCanvasToImage(canvas){
//新Image对象,可以理解为DOM;
var image = new Image();
//canvas.toDataURL返回的是一串Base64编码的URL,当然,浏览器自己肯定支持
//指定格式PNG
image.src = canvas.toDataURL("image/png");
return image;
}
});
</script>
</body>
</html>
复制代码
效果如下:
那么实现微信长按二维码识别的功能就很简单了,直接上代码吧~
复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery实现微信长按识别二维码功能</title>
<script src="./jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="jquery.qrcode.min.js"></script>
</head>
<body>
<!--canvas中的二维码-->
<div id="qrDiv" style="display: none;"></div>
<!--image形式的二维码-->
<div id="imgDiv"></div>
<script>
$(function(){
//利用插件生成二维码,生成的二维码在canvas中
$('#qrDiv').qrcode({
width: 120,
height:120,
text: "https://www.baidu.com/"
});
//从canvas中提取图片image
function convertCanvasToImage(canvas) {
//新Image对象,可以理解为DOM
var image = new Image();
// canvas.toDataURL 返回的是一串Base64编码的URL,当然,浏览器自己肯定支持
// 指定格式PNG
image.src = canvas.toDataURL("image/png");
return image;
}
//获取网页中的canvas对象
var mycanvas1=document.getElementsByTagName('canvas')[0];
//将转换后的img标签插入到html中
var img = convertCanvasToImage(mycanvas1);
$('#imgDiv').append(img);//imgDiv表示你要插入的容器id
})
</script>
</body>
</html>