所以我知道context.clearRect
使像素透明,但我想知道,是否有使像素半透明的功能?
例如,假设我有一个带有这些颜色的画布(每种颜色的第四个是 alpha):
#ffff #feef #abff
#5f6f #000f #ffff
Running clearRect
会解决这个问题(或者其他什么,只是让它们全部透明):
#fff0 #fee0 #abf0
#5f60 #0000 #fff0
我想删除不透明度,但不使其透明(有点像globalAlpha
for clearRect
),这样它就可以像这样结束(假设我设置了globalAlpha
相当于0.5):
#fff8 #fee8 #abf8
#5f68 #0008 #fff8
这可能吗?或者将所有内容绘制在屏幕外的画布上,然后绘制该画布(使用globalAlpha
设置)在屏幕上?
如果有任何不清楚的地方请告诉我。
上面的答案可以完成工作,但是 getImageData 非常慢,如果您还有很多其他事情正在进行,它会极大地减慢您的动画速度。如果您创建第二个离屏画布元素,您可以将其全局 alpha 设置为 0.9 并来回移动它们,并以更快的速度获得相同的效果。
context2.clearRect(0,0,width,height);
context2.globalAlpha = .9;
context2.drawImage(canvas1,0,0);
context1.clearRect(0,0,width,height);
context1.drawImage(canvas2,0,0);
context1.the rest of the drawing that you are doing goes here.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)