Canvas与Image互相转换示例代码


Posted in HTML / CSS onAugust 09, 2013

JS Canvas与Image互相转换
原文演示: JavaScript Canvas Image Conversion Demo
在上周的Mozilla Web开发 会议,最后我们花了大半天的时间讨论未来的Mozilla市场应用。Instagram是近期最火爆的移动应用,以10亿美元的天价卖给了FaceBook。
我不介意赚取一些外快,所以我决定创建一个Instagram样式的应用(以后将会分享出来)

本文向您展示怎样转换Image为canvas,以及canvas如何提取出一个Image。

转换 Image为 Canvas
要把图片转换为Canvas(画板,画布),可以使用canvas元素 context 的drawImage方法:

复制代码
代码如下:

// 把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;
}

转换 Canvas 为 Image
假设图像已经在canvas上处理好,那么可以使用以下方法,把canvas转变为图片Image对象。
复制代码
代码如下:

// 从 canvas 提取图片 image
function convertCanvasToImage(canvas) {
//新Image对象,可以理解为DOM
var image = new Image();
// canvas.toDataURL 返回的是一串Base64编码的URL,当然,浏览器自己肯定支持
// 指定格式 PNG
image.src = canvas.toDataURL("image/png");
return image;
}

额!图像image和canvas的互相转换比你想象的还要容易,以后我将向你演示不同的图像处理技术,相信在未来你肯定能用这些技术赚到大钱。
HTML / CSS 相关文章推荐
一款纯css3制作的2015年元旦雪人动画特效教程
Dec 29 HTML / CSS
网页中的电话号码如何实现一键直呼效果_附示例
Mar 15 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
Aug 23 HTML / CSS
html5使用canvas画空心圆与实心圆
Dec 15 HTML / CSS
基于html5绘制圆形多角图案
Apr 21 HTML / CSS
canvas绘制视频封面的方法
Feb 05 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
Oct 14 HTML / CSS
吃透移动端 1px的具体用法
Dec 16 HTML / CSS
钉钉企业内部H5微应用开发详解
May 12 HTML / CSS
使用Html5 Stream开发实时监控系统
Jun 02 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
Aug 17 HTML / CSS
Ratchet 模态框的实现
Aug 19 HTML / CSS
通过Canvas及File API缩放并上传图片完整示例
Aug 08 #HTML / CSS
HTML5新增的Css选择器、伪类介绍
Aug 07 #HTML / CSS
HTML5 自动聚焦(autofocus)属性使用介绍
Aug 07 #HTML / CSS
HTML5 placeholder(空白提示)属性介绍
Aug 07 #HTML / CSS
5个你不知道的HTML5的接口介绍
Aug 07 #HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
Aug 06 #HTML / CSS
使用HTML5拍照示例代码
Aug 06 #HTML / CSS
You might like
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP实现JS中escape与unescape的方法
2016/07/11 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
PHP7新特性
2021/03/09 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
Angular中$cacheFactory的作用和用法实例详解
2016/08/19 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
Python多进程multiprocessing用法实例分析
2017/08/18 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
python如何查看微信消息撤回
2018/11/27 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
python使用列表的最佳方案
2020/08/12 Python
爱心捐助倡议书
2014/05/19 职场文书
2014年创卫工作总结
2014/11/24 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
教师个人年终总结
2015/02/11 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
春节晚会开场白
2015/05/29 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
python基础之停用词过滤详解
2021/04/21 Python