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 οnclick="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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值