龙空技术网

跨域图片(CANVAS)

乌黑浓密秀发的程序员 118

前言:

现时我们对“图片 跨域”大体比较关心,大家都想要剖析一些“图片 跨域”的相关文章。那么小编同时在网摘上搜集了一些有关“图片 跨域””的相关内容,希望你们能喜欢,各位老铁们快快来了解一下吧!

HTML<canvas>元素标签也依赖于CORS来加载/显示来源不同(不同域)的图片。

Canvas 是HTML5中引进的标签。用来在javascript图形生成,图片加载。

图片可以存储在同一服务器或者不同服务器。通过Canvas都可以显示。

不同之处在于跨域图片(cross-origin image)会污染/损伤canvas。

Tainting a canvas

意味着canvas提取不到图片数据啦。

<canvas>对外提供3个萃取数据的方法:

toBlob, toDataURL, getImageData

以上方法都返回二进制(binary)的图片数据。

利用canvas的这些方法加载同源(same-origin)图片,一切都会正常显示。

但是如果canvas显示/请求一个跨域图片(cross-image),浏览器会报错。

回避这个错误,图片必须标记“corss-origin"。

crossOrigin属性有2个值:anonymous和user-credentials。

设定为anonymous值的话,不会在request/请求中携带任何cookie。

跨域图片正常显示的前提,服务器端必须允许图片的跨域请求。

参考文献:CORS in action

标签: #图片 跨域 #html二进制流图片