html5 – 具有自由CORS政策的公开托管形象?

我正在做一些测试,将图像加载到画布中,并在我们的aws cdn上使用一个私人托管的图像.此cdn具有CORS策略,可以将图像加载到画布中.

我想通过github,jsbin等与世界公开分享我的代码,但需要使用自由的CORS策略来承载一个或两个图像.有没有可以使用的图像? Google和Google Image Search搜索并没有改变.

解决方法

我通常使用 http://imgur.com/的图像(与SO使用的内联图像相同的网站) – 无需注册,只需上传或粘贴到图像链接中即可.

支持CORS要求,因此您可以直接链接并使用canvas进行像素提取.

如果您需要托管不同的文件,除了图像我建议DropBox作为markE.

然而,有任何免费服务包括. imgur和DropBox,所以在使用链接之前,请务必阅读使用条款(ToS)(即,它们都不会用作CDN,因此您可能想查看一些商业CDN提供商).

启用CORS使用

如果允许,您可以在JavaScript中设置 – 在设置src之前设置crossOrigin:

var img = new Image();
img.crossOrigin = "";  // or "anonymous",will be interpreted the same
...
img.src = "...";

作为HTML标签属性(顺序无关紧要):

<img crossOrigin="" src="" ...>

测试

var img = new Image();
img.crossOrigin = "";
img.onload = test;
img.src = "http://i.imgur.com/fHyEMsl.jpg";

function test() {

  var ctx = document.querySelector("canvas").getContext("2d");
  ctx.drawImage(this,0);
  
  // This will fail if no CORS support,otherwise all OK
  try {
    ctx.getimageData(0,10,10);
    alert("All OK");
  } 
  catch(err) {
    alert("No CORS support...");
  }
}
<canvas></canvas>

相关文章

HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码