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 数组排序函数
Aug 20 Javascript
了解jQuery技巧来提高你的代码
Jan 08 Javascript
jquery事件与函数的使用介绍
Sep 29 Javascript
javascript记录文本框内文字个数检测文字个数变化
Oct 14 Javascript
jQuery中add()方法用法实例
Jan 08 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
Bootstrap每天必学之栅格系统(布局)
Nov 25 Javascript
Thinkjs3新手入门之如何使用静态资源目录
Dec 06 Javascript
JS生成随机打乱数组的方法示例
Dec 23 Javascript
JavaScript如何获取一个元素的样式信息
Jul 29 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
Nov 05 Javascript
关于javascript中的promise的用法和注意事项(推荐)
Jan 15 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学习之数组值的操作
2011/04/17 PHP
深入解析php之sphinx
2013/05/15 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
2014/05/06 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
python格式化字符串实例总结
2014/09/28 Python
Python入门篇之条件、循环
2014/10/17 Python
Python文件的读写和异常代码示例
2017/10/31 Python
python版本的仿windows计划任务工具
2018/04/30 Python
Python之文字转图片方法
2018/05/10 Python
python中的常量和变量代码详解
2018/07/25 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
意向协议书范本
2014/04/23 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
毕业生学校推荐信范文
2014/05/21 职场文书
项目经理任命书内容
2014/06/06 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js