javascript - 如何使用 globalCompositeOperation 测试 Canvas 混合模式

标签 javascript html5-canvas browser-feature-detection

因此,根据 this article ,您可以使用以下方法对 Canvas 混合模式进行功能测试:

Modernizr.addTest('canvasblending', function () {
   if (Modernizr.canvas === false) return false;
   var ctx = document.createElement('canvas').getContext('2d');
   ctx.globalCompositeOperation = 'screen';
   return ctx.globalCompositeOperation == 'screen';
});

在 Chrome 27 中返回误报。

最佳答案

我写了一些有用的东西,但它非常丑陋,但我认为它可以帮助其他人或者我们可以得到更好的东西。这是我想出的:

Modernizr.addTest('canvasblending', function() {
  if ( ! Modernizr.canvas ) return false;
  var canvas = document.createElement('canvas');
  canvas.width = 1;
  canvas.height = 1;
  var ctx = canvas.getContext('2d');
  ctx.fillStyle = '#000';
  ctx.fillRect(0,0,1,1);
  ctx.globalCompositeOperation = 'multiply';
  ctx.fillStyle = '#fff';
  ctx.fillRect(0,0,1,1);
  return ctx.getImageData(0,0,1,1).data[0] === 0;
});

关于javascript - 如何使用 globalCompositeOperation 测试 Canvas 混合模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17553357/

相关文章:

javascript - 在异步 Mocha 测试中配置 JSDom

javascript - 删除元素时是否需要清理绑定(bind)对象

javascript - CROPPER JS 获取裁剪 Canvas 不适用于较大的文件

javascript - 在当前鼠标位置的 Canvas 内添加一个 Textarea

javascript - 在 Canvas 上绘制时的偏移

javascript - IE10 版本 10.0.9200.16844 上的 msSaveBlob 问题

javascript - Bootstrap 导航选项卡在 fiddle 中工作,但在使用 Chrome 打开时不起作用

javascript - View 未渲染,区域与布局

javascript - 功能检测 Firefox 怪癖,标题属性未显示在禁用元素上

javascript - 使用 JavaScript 检查浏览器 CSS 属性支持?