将HTML5 Canvas的内容保存为图片建议收藏

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

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

主要思想是借助Canvas自己的API – toDataURL()来实现,整个实现

HTML + JavaScript的代码很简单。

代码如下:

 1 <html>
 2 <meta http-equiv="X-UA-Compatible" content="chrome=1">
 3 <head>
 4 <script>
 5         window.onload = function() {
 6             draw();
 7             var saveButton = document.getElementById("saveImageBtn");
 8             bindButtonEvent(saveButton, "click", saveImageInfo);
 9             var dlButton = document.getElementById("downloadImageBtn");
10             bindButtonEvent(dlButton, "click", saveAsLocalImage);
11         };
12             function draw(){
13                 var canvas = document.getElementById("thecanvas");
14                 var ctx = canvas.getContext("2d");
15                 ctx.fillStyle = "rgba(125, 46, 138, 0.5)";
16                 ctx.fillRect(25,25,100,100); 
17                 ctx.fillStyle = "rgba( 0, 146, 38, 0.5)";
18                 ctx.fillRect(58, 74, 125, 100);
19                 ctx.fillStyle = "rgba( 0, 0, 0, 1)"; // black color
20                 ctx.fillText("Gloomyfish - Demo", 50, 50);
21             }
22             
23             function bindButtonEvent(element, type, handler)
24             {
25                    if(element.addEventListener) {
26                       element.addEventListener(type, handler, false);
27                    } else {
28                       element.attachEvent('on'+type, handler);
29                    }
30             }
31             
32             function saveImageInfo () 
33             {
34                 var mycanvas = document.getElementById("thecanvas");
35                 var image    = mycanvas.toDataURL("image/png");
36                 var w=window.open('about:blank','image from canvas');
37                 w.document.write("<img src='"+image+"' alt='from canvas'/>");
38             }
39 
40             function saveAsLocalImage () {
41                 var myCanvas = document.getElementById("thecanvas");
42                 // here is the most important part because if you dont replace you will get a DOM 18 exception.
43                 // var image = myCanvas.toDataURL("image/png").replace("image/png", "image/octet-stream;Content-Disposition: attachment;filename=foobar.png");
44                 var image = myCanvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); 
45                 window.location.href=image; // it will save locally
46             }
47         </script>
48 </head>
49 <body bgcolor="#E6E6FA">
50     <div>
51         <canvas width=200 height=200 id="thecanvas"></canvas>
52         <button id="saveImageBtn">Save Image</button>
53         <button id="downloadImageBtn">Download Image</button>
54     </div><a href=http://www.cnblogs.com/roucheng/">柔城</a>
55 </body>
56 </html>

http://www.cnblogs.com/roucheng/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120724.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 扯谈网络编程之自己实现ping

    扯谈网络编程之自己实现ping

    2022年1月22日
    40
  • 键盘钩子入门

    键盘钩子入门1钩子   钩子是操作系统消息处理的一种机制。通过钩子,应用程序可以安装一个钩子回调过程让系统调用,从而监视系统中的消息队列。在这些消息到达目标窗口之前对这些消息进行处理。1.1钩子函数1)钩子函数会降低操作系统的性能,因为它增加系统处理每一个消息的开销。所以用户除非必须才要安装钩子,而且还要尽可能早地去除钩子。2)操作系统支持多种类型的钩子,每种类型都提供了它特有的消息处理机制。3)对…

    2022年4月28日
    154
  • 工作总结

    工作总结工作总结

    2022年4月25日
    40
  • MySQL中DML语句和事务的概念「建议收藏」

    MySQL中DML语句和事务的概念「建议收藏」ML语句知识要点DML语句插入行到表中删除表中的行更新表中的行控制事务DML语句DML:DATAMANIPULATIONLANGUAGE(数据操纵语言),由INSERT、UPDATE、DELETE等语句构成,用来修改表中的数据INSERT语句1.带VALUES子句的INSERT语句INSERT[INTO]tbl_name[(col_name,…)]{VA…

    2022年8月30日
    5
  • HTML5 语义元素

    返回目录 http://hovertree.com/h/bjaf/html5zixueji.htm一个语义元素能够清楚的描述其意义给浏览器和开发者。无语义元素实例:<div&gt

    2021年12月23日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号