您当前的位置: 首页 >  html

qianbo_insist

暂无认证

  • 0浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

html canvas toblob 和下载图片

qianbo_insist 发布时间:2021-07-26 15:43:56 ,浏览量:0

toblob

canvas 的toblob函数是直接生成二进制而不是base64 ,节省了流浪,下载直接为png图片。如下图所示。 结果如上

show me the code



    
    Canvas toBlob and download





	function downloadByBlob(blobObj) {
        const link = document.createElement('a');
        link.style.display = 'none';
        const downloadUrl = window.URL.createObjectURL(blobObj);
        link.href = downloadUrl;
        link.download = `test.png`;
        document.body.appendChild(link);
        link.click();
        link.remove();
    }
    var canvas = document.getElementById("canvas");
	    canvas.width = 640;
        canvas.height = 360;
        var context = canvas.getContext('2d');
		context.rect(0,0,640,360);  
        context.moveTo(10,10);
        context.lineTo(100,100);
        context.lineTo(500,100);
        context.lineWidth = 10;
        context.strokeStyle = "red";
        context.stroke();

 
    //第一个参数是回调函数
    canvas.toBlob(
        function (blob) {
            var newImg = document.createElement("img"),
                url = URL.createObjectURL(blob);
            downloadByBlob(blob);
            //加载后销毁
            newImg.onload = function () {
                // no longer need to read the blob so it's revoked
                URL.revokeObjectURL(url);
            };
 
            //img标签属性赋值
            newImg.src = url;
            //添加为子元素
            document.body.appendChild(newImg);
        });


关注
打赏
1663161521
查看更多评论
立即登录/注册

微信扫码登录

0.0358s