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

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

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

将HTML5 Canvas的内容保存为图片建议收藏此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“”,获取验证码。在微信里搜索“”或者“”或者微信扫描右侧二维码都可以关注本站微信公众号。

主要思想是借助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/

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 花一天时间做一个高质量飞机大战游戏,过万字Unity完整教程!漂亮学妹看了直呼666!

    花一天时间做一个高质量飞机大战游戏,过万字Unity完整教程!漂亮学妹看了直呼666!Unity制作飞机大战。本篇文章完整的介绍了使用Unity引擎制作一个飞机大战的小游戏,附带游戏过程,截图和讲解,最后附带工程源码,请品尝!

  • python2.7安装matplotlib_Matplotlib安装

    python2.7安装matplotlib_Matplotlib安装Matplotlib安装教程有很多不同的方法来安装matplotlib,最好的方法取决于你正在使用什么操作系统,你已经安装了什么,以及如何使用它。为了避免在此页面上浏览所有细节(和潜在的并发症),有几个方便的选择。安装预建的软件包大多数平台:科学的Python发行第一个选择是使用已经提供matplotlib内置的预包装的python发行版之一。Continuum.ioPython发行版(Anac…

  • format python保留小数点后几位_python四舍五入保留两位小数

    format python保留小数点后几位_python四舍五入保留两位小数print(“{:.2f}”.format(3.1415926))传送门

  • 用tcping检查网站开放的端口

    用tcping检查网站开放的端口neo之前分享过一款小巧玲珑工具软件:tcping,即在tcp层进行端口的ping。tcping可以用来检查和确认我们的网站有哪些端口是开放的,使用很顺手。比如neo这几天在研究如何关闭mysql的3306端口,就通过使用tcping工具来确认关闭端口是否成功。Linux下有有个netstat命令,总是对其输出看得云里雾里,虽然netstat-l的输出看不到3306端口,是tcping还能p…

  • 如何将pdf转换成word的3种免费方法「建议收藏」

    如何将pdf转换成word的3种免费方法「建议收藏」怎样将PDF转成Word?这是很多网友经常问到的问题,PDF转换成Word利用一些小技巧和工具,你会发现是很容易的,以下的PDF转Word的3种免费方法你一定要看一看。1、“复制/粘贴”大法在寻找如何将PDF转换成Word的“高级”办法之前,不妨先试一下最傻瓜的方法:首先用极速PDF阅读器打开PDF文档,选择文本内容后右击选择“复制选择内容”或直接使用“全选”;接着新建一个Word文档后,直接将内容在Word中粘贴即可。如果文档格式不复杂,这样得到的Word就够用了,当然有些可能排版会比较乱。2、G

  • Android 屏幕适配之框架(AndroidAutoSize)(今日头条)适配

    Android 屏幕适配之框架(AndroidAutoSize)(今日头条)适配AndroidAutoSize框架 1.链接https://github.com/JessYanCoding/AndroidAutoSize 2.使用 2.1.添加Gradle配置implementation’me.jessyan:autosize:1.1.2′  2.2.添加AndroidManifest配置&lt;manifest&gt;…

发表回复

您的电子邮箱地址不会被公开。

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