IT技术类

javascript canvas 1

2020-06-07  本文已影响0人  whmyahoo

        今天在做canvas图片压缩时碰到一个奇怪的问题,使用canvas绘制画片并转换成base64时,

    老是报错如下:

image_handler.html:50 Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

产生这个错误的原因是因为我使用的是一张远程的图片(图片地址以http开头),canvas在使用远程图片的时候会有跨域的问题。解决的方法是在加载图片之前做如下的设置即可:

    if(image.indexOf('http') == 0)img.crossOrigin = '*';

注意:不这样设置的话,图片也是可以绘制出来的,但是要对它进行运算就不行了。这个坑以后可能还会踩到,所以记录下来。

完整代码如下:


上一篇 下一篇

猜你喜欢

热点阅读