canvas转图片
| <script> | |
| var canvas, context2D, canvasimg, context2Dimg ,fontSize = 100; | |
| window.onload = function() { | |
| canvas =document.getElementById("canvas"); | |
| context2D = canvas.getContext("2d"); | |
| canvasimg =document.getElementById("canvasimg"); | |
| context2Dimg = canvasimg.getContext("2d"); | |
| context2D.font ="100px 黑体"; | |
| context2D.fillText("V", 0, fontSize); | |
| //添加range事件 | |
| document.getElementById("range").addEventListener("mouseup", function() { | |
| fontSize = this.value; | |
| context2D.font = this.value +"px 黑体"; | |
| context2D.clearRect(0, 0, canvas.width, canvas.height); | |
| context2D.fillText("V", 0, fontSize); | |
| }); | |
| } | |
| function go(){ | |
| var img = convertCanvasToImage(document.getElementById("canvas")); | |
| context2Dimg.clearRect(0, 0, canvas.width, canvas.height); | |
| context2Dimg.drawImage(img, 0, 0); | |
| //需要将Base64编码转换为Blob(一段二进制数据)对象 ,后才能生成文件下载 参考 http://javascript.ruanyifeng.com/htmlapi/file.html#toc0 | |
| var blob = new Blob([Base64Binary.decodeArrayBuffer(canvas.toDataURL("image/png").substring(22))]); //删除字符串前的提示信息 "data:image/png;base64," | |
| var a = document.createElement("a"); | |
| a.href = window.URL.createObjectURL(blob); | |
| a.download = "test.png"; | |
| a.textContent = "下载图片->"; | |
| document.body.appendChild(a); | |
| //a.click(); | |
| show(); | |
| } | |
| //将图片显示在网页中 | |
| function show(){ | |
| var img = convertCanvasToImage(document.getElementById("canvas")); | |
| document.body.appendChild(img); | |
| } | |
| //将canvas变成图片png | |
| function convertCanvasToImage(canvas) { | |
| var image = new Image(); | |
| image.style.border="1px solid blue"; | |
| image.src = canvas.toDataURL("image/png"); | |
| return image; | |
| } | |
| </script> | |
| <style> | |
| input[type=range]:before { content: attr(min); padding-right: 5px; } | |
| input[type=range]:after { content: attr(max); padding-left: 5px;} | |
| </style> | |
| </head> | |
| <body> | |
| <input id="range" type="range" name="range" min="100" max="500" step="100" value="100" /> | |
| <canvas id="canvas" style="border:1px solid red;" width=500 height=500></canvas> | |
| <button onclick="go();">canvas转图片,再加载到右边canvas中</button> | |
| <canvas id="canvasimg" style="border:1px solid red;" width=500 height=500></canvas> | |
| </body> | |
| <script> | |
| //base64转Blob 地址 https://github.com/danguer/blog-examples/blob/master/js/base64-binary.js |
canvas转图片的更多相关文章
- canvas学习笔记:canvas对图片的像素级处理--ImageData的应用
学习了canvas的基本绘图功能后,惊喜的发现canvas对图片数据也有相当强大的处理功能,能够从像素级别操作位图,当然[lte ie8]不支持. 主要的函数有三个: ctx.createImageD ...
- 快速解决Canvas.toDataURL 图片跨域的问题
出现Canvas.toDataURL 图片跨域问题怎么解决呢?下面小编就为大家带来一篇Canvas.toDataURL 图片跨域问题的快速解决方法.一起跟随小编过来看看吧 如题,在将页面的图片地址进行 ...
- 用canvas实现图片滤镜效果详解之灰度效果
前面展示了一些canvas实现图片滤镜效果的展示,并且给出了相应的算法,下面来介绍一下具体的实现方法. 前面介绍的特效中灰度效果最简单,就从这里开始介绍吧. 1.获取图像数据 img.src = ’h ...
- 使用canvas进行图片裁剪简单功能
1.html部分 使用一个input[type="file"]进行图片上传: canvas进行图片的裁剪展示 <div> <input type="fi ...
- 利用canvas 导出图片
1.使用canvas绘制图片,并将图片导出. 在本地直接访问静态网页时,无法使用toDataURL(),需要将网页发布后,canvas才能使用toDataURL获取画布上的内容.因为canvas不允许 ...
- canvas将图片转为base64
最简例子 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta ...
- [JavaScript] canvas 合成图片和文字
Canvas Canvas 是 HTML5 新增的组件,就像一个画板,用 js 这杆笔,在上面乱涂乱画 创建一个 canvas <canvas id="stockGraph" ...
- canvas和图片之间的互相装换
canvas和图片之间的互相装换 一.总结 一句话总结:一个是canvas的drawImage方法,一个是canvas的toDataURL方法 canvas drawImage() Image对象 c ...
- Canvas 实现图片合成并下载合成图片
现在经常会遇到那种带二维码的推广图片,如下图所示: 1是整张推广图的背景,2是二维码.这种图片的背景是保持不变的,里面的二维码是变化的.所以我们需要把二维码单独生成然后与背景合并. 我们可以通过can ...
随机推荐
- 直接将DataTable存入oracle数据库中(转)
注意 1:传入的DataTable的列必须和数据库中表列必须一致,否则数据会默认往前几列存 2:sql语句只要是对要插入的表的一个查询,目的是为了确定表名 3:取得连接字符串的方法为GetOracle ...
- 【mybatis】mybatis进行批量更新,报错:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right
使用mybatis进行批量更新操作: 报错如下: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an erro ...
- Unity 动画知识之一
Unity现在已经用的很广泛啦,可是却一直没有什么美术向的教程. 程序用方面的内容在各个论坛都有讨论,但是美术似乎很弱势啊. 明明美术也很需要掌握引擎方面的内容嘛! 山谷里的野百合还有春天呢 我们美术 ...
- 同志亦凡人第五季/全集BQueer As Folk 5迅雷下载
同志亦凡人 第五季 Queer as Folk Season 5 (2005) 本季看点:这是一群生活在匹兹堡男人和男人,女人和女人的故事.在他们的王国里有各色人物.王国的国王Brian(葛尔?哈罗德 ...
- 唐顿庄园第一至五季/全集Downton Abbey迅雷下载
本季Downton Abbey 1(2010)看点:ITV古装剧剧<唐顿庄园>由曾因<高斯福德庄园>而荣获奥斯卡的金牌编剧Julian Fellowes一手打造,明星云集的演员 ...
- docker 日志清理与设置
清空 cat /dev/null >json.log docker-compose nginx: image: nginx:1.12.1 restart: always logging: dri ...
- js混淆加密,通过混淆Js代码让别人(很难)无法还原
js混淆加密,通过混淆Js代码让别人(很难)无法还原 使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密 ...
- cannot import name 'main' 解决方案
error description: pip3 install numpy Traceback (most recent call last): File "/usr/bin/pip3&qu ...
- [转]php使用 memcache 来存储 session
转自:http://koda.iteye.com/blog/466667 Memcache和PHP memcach扩展安装请见http://koda.iteye.com/blog/665761 设置s ...
- linux 比较两个文件夹不同 (diff命令, md5列表)
比较文件夹diff,可以直接使用diff命令 [root@~]# diff -urNa dir1 dir2 -a Treat all files as text and compare them li ...