javascript - 混合模式 :multiply in Internet Explorer

标签 javascript css internet-explorer canvas blending

我需要在乘法模式下将图像与红色方 block 混合在一起。 据我所知,IE 和 Safari 不支持 css 属性“混合模式”,因此我尝试将它们混合在 Canvas 中,一切正常 - 除了 IE。 有没有什么方法可以在 IE 中将它们混合在一起,或者目前还不支持这种方法?

最佳答案

对于 Internet Explorer,Canvas 混合模式“正在考虑中”。

https://developer.microsoft.com/en-us/microsoft-edge/platform/status/mixblendmode/?q=blend

在 IE 中实现混合之前,您可以滚动自己的乘法过滤器:

function multiply(R, G, B) {
  var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
  var data = imgData.data;

  for (var i = 0; i < data.length; i += 4) {
    data[i    ] = R * data[i    ] / 255;
    data[i + 1] = G * data[i + 1] / 255;
    data[i + 2] = B * data[i + 2] / 255;
  }

  ctx.putImageData(imgData, 0, 0);
}

而且这个乘法图像过滤器也是跨浏览器兼容的。

关于javascript - 混合模式 :multiply in Internet Explorer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158696/

相关文章:

javascript - 使用 javascript 迭代并映射数组中的 JSON

css - 如何在我自己的 CSS 上正确导入 Sass?

html - Internet Explorer 动画中的框阴影伪像

javascript - 从服务器格式化此 JSON 数据时遇到问题

javascript - 同时使用 OnClick 和 OnClientClick 不起作用

javascript - 在PHP中验证数据库中的用户名和密码后,如何使按钮转到特定页面

javascript - html 中的只读属性与removeAttribute 不一致

internet-explorer - 谷歌地图和 CSS 缩放

javascript - JS 中的循环、推送方法和子数组

jquery - 增加/减少/重置字体大小不起作用