如何添加alpha的2张图片,所以结果是alpha = 1
JavaScript - how to add alphas of 2 images so the result is alpha = 1?
我需要在两个图像之间进行过渡-两个图像都是隐藏精灵的蒙版。每个掩模一部分是白色的,一部分是透明的。我需要两个图像的总alpha值每次都为1,这样看起来蒙版会平滑地改变形状。如果我对image1使用从1到0的转换,对image2使用从0到1的转换,然后将两个图像相互绘制,那么结果不是alpha1 + alpha2 = 1。有什么办法能拿到吗?非常感谢,瓦茨拉夫·
我认为这是画布的默认行为,在目的地是原始image1(不乘以alpha从1到0)的条件下。
source-over
操作执行result = alpha*source + (1-alpha)*dest
,即使对于alpha通道也是如此。
我没有遮罩图像来测试它,但我认为这段代码应该做你想要的:
ctx.globalCompositeOperation = 'copy';
ctx.globalAlpha = 1.;
ctx.drawImage(img1, 0, 0);
ctx.globalCompositeOperation = 'source-over';
ctx.globalAlpha = ratio;
ctx.drawImage(img2, 0, 0);
(如果你知道上下文在计算前处于哪个状态,有些行是不必要的)
(顺便说一下,给出一个示例代码来重现您的问题将非常感激)
相关文章:
- webpack代码拆分了handlerbs文件——结果是文件很大
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- 为什么_self结果是不同的价值观
- 为什么结果是全局名称,这是由“这个”引起的
- 斐波那契数列的结果是无穷大,然后是 NaN
- 如何处理'00'JSON中的结果是JS或Coldfusion
- ReactJS-这个状态中的数组在删除时被正确更新,但结果是't,直到以后的状态发生变化
- 为什么这个JavaScript代码的结果是“;未定义”;
- 基准测试js的结果是什么意思
- 将函数从 obj 传递到数组中.然后添加数组,但结果是 NaN.为什么
- 在Javascript中获得下一个12个月的结果是混乱的
- 结果是检查多个复选框值并更新表数据
- 为什么Javascript给出的结果是数字而不是真/假的表达式
- 使用 Lodash 合并数组,为什么结果是重复的数组值?,我的代码在哪里出错
- 不同的结果是减去这两个值
- 通过循环更改 JSON 格式的数据.结果是三倍
- JavaScript检查一个对象数组的结果是错误的,而它应该是真的
- 使用Ajax的Phonegap发送图像的结果是[Object ArrayBuffer],而不是二进制
- 跳到主回调,结果是异步瀑布节点js
- 如何添加alpha的2张图片,所以结果是alpha = 1