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父窗口控制只弹出一个子窗口
Apr 10 Javascript
JQuery 国际象棋棋盘 实现代码
Jun 26 Javascript
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
Jul 07 Javascript
php实例分享之实现显示网站运行时间
May 20 Javascript
sails框架的学习指南
Dec 22 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
Mar 07 Javascript
用jQuery向div中添加Html文本内容的简单实现
Jul 13 Javascript
JavaScript中匿名函数的递归调用
Jan 22 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
Jan 27 Javascript
Vue.js 2.x之组件的定义和注册图文详解
Jun 19 Javascript
Vue高版本中一些新特性的使用详解
Sep 25 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二分法在IP地址查询中的应用
2008/08/12 PHP
PHP的单引号和双引号 字符串效率
2009/05/27 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
matplotlib quiver箭图绘制案例
2020/04/17 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
党员创先争优心得体会
2014/09/11 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
老乡会致辞
2015/07/28 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL