代码是:
var img2 = new Image,
    canvas = document.createElement("canvas"),
    ctx = canvas.getContext("2d");
    img2.src = src;
    img2.crossOrigin = "Anonymous";
    img2.onload = function() {
         canvas.width = img2.width;
         canvas.height = img2.height;
         ctx.drawImage( img2, 0, 0 );
         console.log(canvas.toDataURL("image/png"));
    }
错误内容是
Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
                            
                                    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
放到本地服务器里
base64图片可以jsonp过来;
早年一个项目用过;
用jsonp的形式可以解决跨域问题的
如果图片的服务器不允许跨域访问是无解的。
如果你可以读到图片的二进制文件的话,可以试试把二进制文件直接丢到canvas里
canvas使用加载跨域图片的img,除了要设置的crossOrigin属性。
还要看该跨域图片所在的服务器是否允许跨域访问。
所以,你这个明显是要加载图片的服务器不允许跨域。
在服务器上相应头里:设置Access-Control-Allow-Origin为 * ,就可以允许跨域。
可能无法解决吧。我尝试了很多办法都不行。有会的吗?