如何使用globalCompositeOperation测试画布混合模式

时间:2013-07-09 16:21:08

标签: javascript html5-canvas browser-feature-detection

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

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中返回误报。

1 个答案:

答案 0 :(得分:2)

我写了一些有用的东西,但它非常难看,但认为它既可以帮助别人,也可以让我们得到更好的东西。这就是我想出的:

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