js实现canvas图片与img图片的相互转换的示例


Posted in Javascript onAugust 31, 2017

最近在一个项目中,遇到了一个问题,需要把生成的canvas形式的二维码转换为图片,可以长按识别,保存等。查找了一些资料归纳总结了一些知识。

默认在jq库里进行,引入jquery.qrcode.min.js库,将canvas图片转化为img图片,代码如下,

<body>
  <div id="cans"></div>
  <div id="img"></div>
</body>
<script>
//生成canvas形式的二维码
$("#cans").qrcode({
  width:150,
  height:150,
  text:'http://www.cnblogs.com/dxzg/p/6424855.html'//需要生成的内容
  });
  
//从 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 mycans=$('canvas')[0];  
//调用convertCanvasToImage函数将canvas转化为img形式  
var img=convertCanvasToImage(mycans); 
//将img插入容器 
$('#img').append(img); 
</script>

同理也可以将图片转换为canvas,转换函数如下:

// 把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; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
判断iframe是否加载完成的完美方法
Jan 07 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
Apr 27 Javascript
JQuery在页面中添加和除移DOM示例代码
Jun 24 Javascript
JavaScript中Null与Undefined的区别解析
Jun 30 Javascript
Javascript中的数据类型之旅
Oct 18 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
May 26 Javascript
SVG描边动画
Feb 23 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
Nov 10 Javascript
Node.js利用console输出日志文件的方法示例
Apr 27 Javascript
关于node-bindings无法在Electron中使用的解决办法
Dec 18 Javascript
Vue项目路由刷新的实现代码
Apr 17 Javascript
bootstrap datepicker的基本使用教程
Jul 09 Javascript
vue实现全选和反选功能
Aug 31 #Javascript
浅谈Vue 初始化性能优化
Aug 31 #Javascript
Vue keep-alive实践总结(推荐)
Aug 31 #Javascript
深入理解vue-router之keep-alive
Aug 31 #Javascript
vue-router 导航钩子的具体使用方法
Aug 31 #Javascript
浅谈express 中间件机制及实现原理
Aug 31 #Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
Aug 31 #Javascript
You might like
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
js获取变量
2006/08/24 Javascript
js版本A*寻路算法
2006/12/22 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
开会迟到检讨书
2014/02/03 职场文书
英文请假条
2014/04/11 职场文书
学习保证书范文
2014/04/30 职场文书
放牛班的春天观后感
2015/06/01 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书