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 相关文章推荐
js 调整select 位置的函数
Feb 21 Javascript
WEB前端设计师常用工具集锦
Dec 09 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
angularjs 源码解析之scope
Aug 22 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
Feb 20 Javascript
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
Vue中使用vee-validate表单验证的方法
May 09 Javascript
基于vue.js组件实现分页效果
Dec 29 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
Feb 27 Javascript
ElementUI radio组件选中小改造
Aug 12 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
ES6扩展运算符和rest运算符用法实例分析
May 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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
PHP asXML()函数讲解
2019/02/03 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
python 整数越界问题详解
2019/06/27 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
django用户登录验证的完整示例代码
2019/07/21 Python
Python代码注释规范代码实例解析
2020/08/14 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
艺术节主持词
2014/04/02 职场文书
灰雀教学反思
2014/04/28 职场文书
党员批评与自我批评
2014/10/15 职场文书
三峡导游词
2015/01/31 职场文书
区域经理岗位职责
2015/02/02 职场文书
护士个人年终总结
2015/02/13 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
windows server2008 开启端口的实现方法
2022/06/25 Servers