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的flexbox实现水平垂直居中与三列等高布局
Sep 12 HTML / CSS
CSS3 制作绽放的莲花采用效果叠加实现
Jan 31 HTML / CSS
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
Oct 10 HTML / CSS
css3实现超立体3D图片侧翻倾斜效果
Apr 16 HTML / CSS
HTML5 与 XHTML2
Oct 17 HTML / CSS
HTML5重塑Web世界它将如何改变互联网
Dec 17 HTML / CSS
html5构建触屏网站之网站尺寸探讨
Jan 07 HTML / CSS
有关HTML5中背景音乐的自动播放功能
Oct 16 HTML / CSS
htnl5利用svg页面高斯模糊的方法
Jul 20 HTML / CSS
3种方式实现瀑布流布局小结
Sep 05 HTML / CSS
h5移动端调用支付宝、微信支付的实现
Jun 08 HTML / CSS
html css3不拉伸图片显示效果
Jun 07 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
php缓存技术介绍
2006/11/25 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
python文件操作之目录遍历实例分析
2015/05/20 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
python爬虫实例详解
2018/06/19 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
火灾现场处置方案
2014/05/28 职场文书
四年级学生期末评语
2014/12/26 职场文书
施工员岗位职责范本
2015/04/11 职场文书
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
服务器nginx权限被拒绝解决案例
2022/09/23 Servers