HTML5画布叠加透明渐变

凯文

我正在HTML5中创建颜色选择器,例如下面的渐变

颜色渐变

它包含三个元素:

  1. 稳定的红色背景色(必须可变)
  2. 从底部到顶部的黑色透明渐变
  3. 从左到右的白色透明渐变

我设法创建了一个渐变和一种颜色,但是我不知道如何将纯色和两个渐变叠加在一起。我该怎么做?

(我可以提供我的代码,但是它很通用,不会有用)

用户名

您可以将两个渐变相互叠加:

小提琴演示

水平渐变

从白色变为要使用的颜色(色相度),并具有100%饱和度和50%亮度:

var grH = ctx.createLinearGradient(0, 0, ctx.canvas.width, 0);
grH.addColorStop(0, '#fff');
grH.addColorStop(1,  'hsl(' + hue + ', 100%, 50%)');

ctx.fillStyle = grH;
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);

水平渐变

垂直

从黑色底部到顶部透明。

var grV = ctx.createLinearGradient(0, 0, 0, ctx.canvas.height);
grV.addColorStop(0, 'rgba(0,0,0,0)');
grV.addColorStop(1,  '#000');

ctx.fillStyle = grV;
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);

垂直渐变

结果

首先绘制水平然后在顶部绘制垂直将导致以下结果:

色调调色板

演示中一样,创建滑块来更新色调调色板很容易。您无需像演示中那样重新创建从黑色到透明的渐变-只需将其缓存到屏幕外的画布上,并在每次更新时重新使用它,因为这样可以为您带来更高的性能。

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章