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 相关文章推荐
JavaScript 对象、函数和继承
Jul 07 Javascript
jQuery.getScript加载同域JS的代码
Feb 13 Javascript
Javascript 运动中Offset的bug解决方案
Dec 24 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
XML、HTML、CSS与JS的区别整理
Feb 18 Javascript
Angular JS数据的双向绑定详解及实例
Dec 31 Javascript
两种简单的跨域方法(jsonp、php)
Jan 02 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
Vue 框架之动态绑定 css 样式实例分析
Nov 14 Javascript
Vue入门之数量加减运算操作示例
Dec 11 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
Sep 11 Javascript
webpack.DefinePlugin与cross-env区别详解
Feb 23 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
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
详解vue 图片上传功能
2019/04/30 Javascript
原生JS使用Canvas实现拖拽式绘图功能
2019/06/05 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
python实现识别相似图片小结
2016/02/22 Python
Python selenium文件上传方法汇总
2020/11/19 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
Python input函数使用实例解析
2019/11/22 Python
Django重设Admin密码过程解析
2020/02/10 Python
在python3中实现更新界面
2020/02/21 Python
django教程如何自学
2020/07/31 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
职务聘任书范文
2014/03/29 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
党支部三会一课计划
2014/09/24 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
运动会通讯稿100字
2015/07/20 职场文书
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB