Canvas引入跨域的图片导致toDataURL()报错的问题的解决


本文摘自PHP中文网,作者青灯夜游,侵删。

这篇文章主要介绍了Canvas引入跨域的图片导致toDataURL()报错的问题的解决的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

推荐手册:HTML5最新版参考手册

本文介绍了Canvas引入跨域的图片导致toDataURL()报错的问题的解决,分享给大家,具体如下:

1.png

【场景】

用户打开网页,则请求腾讯COS(图片服务器)上的图片。使用canvas绘图。

然后,用户可以重新选择图片、裁剪、上传。

【问题】

图片首次载入,选择新图片后裁剪、绘制都没有问题。但上传失败,报错如下:

Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

经过了解,需要在图片首次引用时,设置crossOrigin字段:

1

2

3

4

5

6

7

8

9

var c=document.getElementById("cover_show");

var img=new Image();

img.src="http://vsqx-cover-xxxxxx.coscd.myqcloud.com/"+this.vsqx_uid+".jpg";

//增加这一行:

img.setAttribute("crossOrigin",'anonymous');

img.onload = function(){

    var cxt=c.getContext("2d");

    cxt.drawImage(img,0,0,300,150,0,0,200,126);

}

然后再次运行。发现图片首次载入时,不显示了。。。

阅读剩余部分

相关阅读 >>

借助todataurl实现将html5 canvas的内容保存为图片

高德地图+canvas画图结合实现一个小项目

如何利用canvas实现按住鼠标移动绘制出轨迹

使用html5的canvas和javascript创建一个绘图程序的示例代码

html5 canvas用来绘制弧形的代码实现

html5 canvas渐进填充与透明实现图像的mask效果

利用html5以及canvas实现支持签名插件的方法

用h5的canvas做恐怖动画

介绍html5+canvas调用手机拍照功能实现图片上传(上篇)

h5 canvas实现圆形动态加载进度实例

更多相关阅读请进入《canvas》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...