canvas.toDataURL("image/png")逃坑

<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>


<body>
<div style="text-align: center;">
<canvas id="thecanvas" width="500" height="300" style="border: 1px solid #fff123"></canvas>
<button id="saveImageBtn">Save Image</button>  
        <button id="downloadImageBtn">Download Image</button>  

</div>

<script>
        window.onload = function() {  
            draw();  
            var saveButton = document.getElementById("saveImageBtn");  
            bindButtonEvent(saveButton, "click", saveImageInfo);  
            var dlButton = document.getElementById("downloadImageBtn");  
            bindButtonEvent(dlButton, "click", saveAsLocalImage);  
        };  
        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  
        }  

        function draw(){ 
            var img = new Image();          
            img.src = "https://pic2.zhimg.com/v2-3f3533b2e479e2a17cc96654024a8b41_r.jpg";
            //如果没有这一段代码保存图片你会想死
            img.setAttribute("crossOrigin",'Anonymous');
            var canvas = document.getElementById("thecanvas");  
            var ctx = canvas.getContext("2d");          
            // 绘制水印一下内容可自行更改,建议使用一种颜色
            img.onload = function(){
                ctx.drawImage(img,0,0);
                ctx.font="20px microsoft yahei";
                ctx.fillStyle = "red(255,255,255,0.5)";
                ctx.fillText("my images",100,100);
                ctx.fillText("my images",100,150);
                ctx.fillText("my images",100,200);
                ctx.fillText("my images",100,250);
                }
            }


    </script>
</body>
</html>
</html>
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值