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实现毛玻璃效果示例源码
Sep 25 HTML / CSS
css3模拟jq点击事件的实例代码
Jul 06 HTML / CSS
css3弹性盒模型实例介绍
May 27 HTML / CSS
纯CSS3实现滚动的齿轮动画效果
Jun 05 HTML / CSS
CSS3实现文本垂直排列的方法
Jul 10 HTML / CSS
详解CSS3:overflow属性
Nov 17 HTML / CSS
深入研究HTML5实现图片压缩上传功能
Mar 25 HTML / CSS
html5指南-5.使用web storage存储键值对的数据
Jan 07 HTML / CSS
HTML5 Canvas中绘制矩形实例
Jan 01 HTML / CSS
用html5绘制折线图的实例代码
Mar 25 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
Aug 21 HTML / CSS
canvas版人体时钟的实现示例
Jan 29 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
php实现数据库的增删改查
2017/02/26 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
用ADODB.Stream转换
2007/01/22 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Python验证企业工商注册码
2015/10/25 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
python基于Selenium的web自动化框架
2019/07/14 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
python3排序的实例方法
2020/10/20 Python
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
消防先进事迹材料
2014/02/10 职场文书
股东协议书
2014/04/14 职场文书
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby
Nginx报404错误的详细解决方法
2022/07/23 Servers