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实现图片模糊过滤效果
Nov 19 HTML / CSS
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
May 09 HTML / CSS
CSS3自定义滚动条样式的示例代码
Aug 21 HTML / CSS
html+css实现自定义图片上传按钮功能
Sep 04 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
Jan 07 HTML / CSS
HTML5之SVG 2D入门4—笔画与填充
Jan 30 HTML / CSS
使用分层画布来优化HTML5渲染的教程
May 08 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
May 12 HTML / CSS
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
Jan 27 HTML / CSS
HTML5打开手机扫码功能及优缺点
Nov 27 HTML / CSS
浅析HTML5页面元素及属性
Jan 20 HTML / CSS
CSS中em的正确打开方式详解
Apr 08 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
一个程序下载的管理程序(三)
2006/10/09 PHP
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
php页面防重复提交方法总结
2013/11/25 PHP
PHP模块memcached使用指南
2014/12/08 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
js微信支付实现代码
2016/12/22 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
详解python开发环境搭建
2016/12/16 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
python实现程序重启和系统重启方式
2020/04/16 Python
什么是python的id函数
2020/06/11 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
就业推荐表自我鉴定
2013/10/29 职场文书
社会实践自我鉴定
2013/11/07 职场文书
父亲生日宴会答谢词
2014/01/10 职场文书
追悼会子女答谢词
2014/01/28 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
个人求职信范文
2014/05/24 职场文书
建筑学专业自荐书
2014/07/09 职场文书
返乡农民工证明
2015/06/24 职场文书
重阳节活动主持词
2015/07/04 职场文书
校园音乐节目广播稿
2015/08/19 职场文书