将HTML5 Canvas的内容保存为图片借助toDataURL实现

2016-02-19 10:35 168 1 收藏

下面图老师小编要跟大家分享将HTML5 Canvas的内容保存为图片借助toDataURL实现,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - Web开发 】

主要思想是借助Canvas自己的API - toDataURL()来实现,整个实现
HTML + JavaScript的代码很简单。

代码如下:

html
meta http-equiv="X-UA-Compatible" content="chrome=1"
head
script
window.onload = function() {
draw();
var saveButton = document.getElementById("saveImageBtn");
bindButtonEvent(saveButton, "click", saveImageInfo);
var dlButton = document.getElementById("downloadImageBtn");
bindButtonEvent(dlButton, "click", saveAsLocalImage);
};
function draw(){
var canvas = document.getElementById("thecanvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "rgba(125, 46, 138, 0.5)";
ctx.fillRect(25,25,100,100);
ctx.fillStyle = "rgba( 0, 146, 38, 0.5)";
ctx.fillRect(58, 74, 125, 100);
ctx.fillStyle = "rgba( 0, 0, 0, 1)"; // black color
ctx.fillText("Gloomyfish - Demo", 50, 50);
}
function bindButtonEvent(element, type, handler)
{
if(element.addEventListener) {
element.addEventListener(type, handler, false);
} else {
element.attachEvent('on'+type, handler);
}
}
function saveImageInfo ()
{
var mycanvas = document.getElementById("thecanvas");
var image = mycanvas.toDataURL("image/png");
var w=window.open('about:blank','image from canvas');
w.document.write("img src='"+image+"' alt='from canvas'/");
}
function saveAsLocalImage () {
var myCanvas = document.getElementById("thecanvas");
// here is the most important part because if you dont replace you will get a DOM 18 exception.
// var image = myCanvas.toDataURL("image/png").replace("image/png", "image/octet-stream;Content-Disposition: attachment;filename=foobar.png");
var image = myCanvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
window.location.href=image; // it will save locally
}
/script
/head
body bgcolor="#E6E6FA"
div
canvas width=200 height=200 id="thecanvas"/canvas
button id="saveImageBtn"Save Image/button
button id="downloadImageBtn"Download Image/button
/div
/body
/html

运行效果如下

来源:http://www.tulaoshi.com/n/20160219/1595168.html

延伸阅读
标签: Web开发
复制代码代码如下: !DOCTYPE HTML html head meta charset="UTF-8" titleHTML5示例/title style type="text/css" #container{border:1px solid #ccc;width:800px;height:600px;position:relative;} canvas{position:absolute;top:0px;left:0px;z-index:1;} /style /head body select id="tools" option value="pen"铅笔/option op...
标签: word
将Word 2010文档直接保存为PDF文件 在Word2007中,用户需要安装Microsoft Save as PDF加载项后才能将Word文档保存为PDF文件。而Word2010具有直接另存为PDF文件的功能,用户可以将Word2010文档直接保存为PDF文件,操作步骤如下所述: 第1步,打开Word2010文档窗口,依次单击文件→另存为按钮,如图1所示。 图1 单击另存...
标签: Web开发
HTML5 Canvas中提供了实现图形平移,旋转,放缩的API。 平移(translate) 平移坐标translate(x, y)意思是把(0,0)坐标平移到(x, y),原来的(0,0)坐标则变成(-x, -y) 图示如下:   任何原来的坐标点p(ox, oy)在translate之后的坐标点为p(ox-x, oy-y),其中点(x, y)为平移 点坐标translate(x, y)。 代码演示: 代码如下: // trans...
想必大家都有遇到这样的情况就是需要发布一条信息,但还不希望这条信息让别人复制,这时就可以将信息以图片的格式发出,如此一来,别有用心的朋友就束手无策了,下面以图文的形式为大家介绍下如何用WPS将文档保存为图片。在WPS文档中输入完毕后执行保存为图片命令,选择保存位置及命名图片,确定之后,你将会在指定路径看到刚刚保存的图片,接...
标签: word
将Word2013文档格式保存为新样式   第1步,打开Word2013文档窗口,选中已经设置格式的文本或段落。在开始功能区的样式分组中单击其他按钮,并在打开的样式库中选择创建样式选项,如图1所示。 图1 选择创建样式选项 第2步,打开根据格式设置创建新样式对话框,在名称编辑框中输入新样式的名称,并单击确定按钮,如图2所示...

经验教程

959

收藏

20
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部