canvas - 使用像素操作时 Safari 上的黑屏
问题描述
我正在使用两层的画布,一层在另一层之上。我正在从视频中获取视频,我正在尝试在画布中使用 drawImage 获取流,并且该视频来自另一个对等方,因此它将在媒体流中并且我正在使用 draw Image,我明白了我的画布中的媒体流。我正在将此画布设置为透明度。为了那个原因
passctx.drawImage($this, 0, 0);
var imageData = passctx.getImageData(0, 0, canvas1.width, canvas1.height);
var data = imageData.data;
var removeBlack = function () {
for (var i = 0; i < data.length; i += 4) {
f (data[i] + data[i + 1] + data[i + 2] <10) {
data[i + 3] = 0; // alpha
}
}
passctx.putImageData(imageData, 0, 0);
};
//removing the alpha channel from the canvas
removeBlack();[enter image description here][1]
这适用于 Chrome、Opera 和 Firefox,这些都只接收没有黑屏的画布中的对象/图表,但在 safari 上却没有,它仍然返回带有黑屏的媒体流。帮助将不胜感激。
解决方案
推荐阅读
- lisp - 哈希表的随机访问
- c++ - 模拟复制构造函数的 C++ 类
- asp.net-core - 邮差。多部分/表单数据问题(415 不受支持的媒体类型)
- flutter - 之间的颤动行小部件空间不起作用。我怎样才能解决这个问题?
- d3.js - 为什么 d3-geo-zoom 不能正确平移页面上超过 1 个画布元素?
- python - 极小极大递归超时
- python - 我要打印的图案是颠倒的
- c# - SqlConnection 无法在 .NET Core 3.1 上打开,但在 4.6.1 框架上成功
- amazon-web-services - AWS Cognito Oauth Scope 中的标识符是什么?
- android - 如何在 Android 上打开应用程序时获取应用程序的名称?