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);

}

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

阅读剩余部分

相关阅读 >>

canvas 学习 3---画坐标系

canvas处理图片的方法

关于canvas的一个实例教程--刮刮乐

canvas实现的骨骼动画

html5 canvas实现文本对齐的代码总结

图文详解如何用canvas画实心圆和空心圆

分享一个用canvas合成海报图片的移动端项目

canvas像素点操作之视频绿幕抠图

html5实战-canvas绘制钟表的示例代码分享

canvas实现雪花随机动态飘落效果(代码示例)

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




打赏

取消

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

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

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

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

评论

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