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 相关文章推荐
关于文本框的一些限制控制总结~~
Apr 15 Javascript
jquery中prop()方法和attr()方法的区别浅析
Sep 06 Javascript
node.js中的fs.lchmodSync方法使用说明
Dec 16 Javascript
js模仿java的Map集合详解
Jan 06 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
Mar 01 Javascript
ES6中非常实用的新特性介绍
Mar 10 Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
Sep 27 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
Oct 09 Javascript
Javascript同时声明一连串(多个)变量的方法
Jan 23 Javascript
AngularJS中filter的使用实例详解
Aug 25 Javascript
详解如何使用nvm管理Node.js多版本
May 06 Javascript
Javascript节流函数throttle和防抖函数debounce
Dec 03 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+DBM的同学录程序(4)
2006/10/09 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
python正则分组的应用
2013/11/10 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
python模拟事件触发机制详解
2018/01/19 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
python3访问字典里的值实例方法
2020/11/18 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
建筑工程管理专业自荐信范文
2013/12/28 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
节水倡议书
2015/01/19 职场文书
党支部工作总结2015
2015/04/01 职场文书
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers