zrender icon indicating copy to clipboard operation
zrender copied to clipboard

导出图片的时候,在执行toBlob()时候浏览器报错,浏览器chrome80版本

Open lhywell opened this issue 5 years ago • 1 comments

SecurityError: Failed to execute 'toBlob' on 'HTMLCanvasElement': Tainted canvases may not be exported."

var { x, y, width, height } = this.group.getBoundingRect();
        var zr = zrender.init(document.createElement('div'), {
            width,
            height
        });
        console.log(x, y, width, height)
        var group = new zrender.Group();
        group.position = [0 - x, 0 - y];

        this.group.eachChild((child) => {
            // 此处会堆栈溢出, 目前解决办法是用原始数据重新创建新的shape, 再加入到新group中
            // console.log(child)
            // var _child = zrender.util.clone(child);
            group.add(child);
        });

        zr.add(group);
        zr.refreshImmediately();

        return zr.painter.getRenderedCanvas({
            backgroundColor: "#fff"
        }).toBlob((blob) => {
            console.log(blob)
            var url = window.URL.createObjectURL(blob);
            window.open(url);
        }, 'image/png');

lhywell avatar Mar 26 '20 03:03 lhywell

请问这个问题目前有办法处理吗

RayTigerZ avatar Jun 13 '25 08:06 RayTigerZ