gpt4 book ai didi

HTML5 Canvas 叠加透明渐变

转载 作者:搜寻专家 更新时间:2023-10-31 02:26:03 25 4
gpt4 key购买 nike

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

Color gradient

它由三个元素组成:

  1. 纯红色背景色(必须可变)
  2. 从下到上的黑色透明渐变
  3. 从左到右的白色透明渐变

我已经设法创建了一个渐变和一个颜色,但我不知道如何将纯色和两个渐变叠加在一起。我怎样才能做到这一点?

(我可以提供我的代码,但它非常通用并且不会有用)

最佳答案

您可以将两个渐变叠加在一起:

Fiddle demo

水平渐变

以 100% 饱和度和 50% 亮度从白色到您想要使用的颜色(HUE 度):

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);

Horizontal gradient

垂直

从黑色底部到顶部透明。

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);

Vertical gradient

结果

先绘制水平线,然后在顶部绘制垂直线,结果如下:

HUE Palette

demo创建一个 slider 来更新色调调色板很容易。您不需要像演示中那样重新创建黑色到透明的渐变 - 只需将其缓存到屏幕外 Canvas 并在每次更新时重新使用它,因为这样可以提高性能。

希望这对您有所帮助。

关于HTML5 Canvas 叠加透明渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com