HTML5画布覆盖透明渐变

2024-02-21

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

它由三个要素组成:

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

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

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


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

小提琴演示 https://jsfiddle.net/epistemex/bp2rfpew/

水平渐变

从白色变为您想要使用 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);

Vertical

从底部黑色到顶部透明。

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

Result

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

正如在demo http://jsfiddle.net/AbdiasSoftware/ghkD9/创建一个滑块来更新色调调色板很容易。您不需要像演示中那样重新创建黑色到透明的渐变 - 只需将其缓存到屏幕外画布并在每次更新时重新使用它,因为这会给您带来更多的性能。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5画布覆盖透明渐变 的相关文章

随机推荐

  • 3D numpy 数组转换为块对角矩阵

    我正在寻找一种将 nXaXb numpy 数组转换为块对角矩阵的方法 我已经遇到过scipy linalg block diag http docs scipy org doc scipy 0 13 0 reference generate
  • 内联块的水平滚动在 Firefox 中有效,但在 Chrome 中无效

    我已经在 Firefox 中实现了水平滚动 但在 Chrome 中不起作用 在 Firefox 中我遇到这种情况 其中 A B C D 是 div 但是当使用 Chrome 访问同一页面时 我看到的是 div 的结构如下 div class
  • 下载时进度条

    我有一个可进行应用内下载的应用程序 我通过以下方式成功下载了mp3文件 NSData data1 NSData dataWithContentsOfURL NSURL URLWithString http somefile mp3 data
  • “HTTP.SYS 中的 URL 保留”是什么意思?

    无法理解这句话的意思 论坛上的人们互相建议在 HTTP sys 中保留 url 但这意味着什么呢 它是做什么用的 它是如何运作的 这一切都来自于 HttpWebRequest uac 问题 一些 Win32 API 和 NET 框架组件 例
  • 百度的echarts - 填充两行之间的空间

    我想找到一种在 ECharts 中绘制两条线并填充它们之间的空间的方法 如下所示 这样每条线都有自己的颜色 根据线条的顺序 区域填充为一种颜色或另一种颜色 见图 有本地方法吗 我发现有些人在提到extensions 但没有人提供任何关于如何
  • 无法将 undefined 或 null 转换为 Next.js 中的对象

    嘿 我正在使用 Next js 和 next auth 构建一个登录页面 我还在providers数组中写过 nextauth js 但是当我运行代码 如下所示 时 import getProviders signIn from next
  • 我可以在移动应用程序的 PKCE Flow 中使用授权码吗?

    我知道 OAuth 2 0 授权代码与 PKCE 流程是 OAuth 的最佳实践 我们计划将它用于我们的 WEB 应用程序 但我不明白如何在不使用浏览器进行身份验证的情况下将此流程用于我的移动应用程序的本机用户体验 https medium
  • read() 函数的返回值是什么类型?

    我想从二进制文件中读取前 188 个字节 并检查第一个字符是否为0x47 代码如下 import os fp open try ts rb for i in range 100 buf fp read 188 if buf 0 x47 pr
  • Azure Bot Framework 模拟器错误 - System.ArgumentNullException:值不能为 null

    我需要一些帮助 我是 Azure 机器人框架开发新手 几周前使用 QnA 知识库创建了我的第一个聊天机器人 无论如何 我设法在 Azure 门户中创建了机器人 并且它运行良好 但我需要在 Bot Framework Emulator 使用
  • 从四元数查看矩阵

    我目前正在构建自己的四元数相机 据我所知 您只需要一个四元数即可完全指定相机的方向 如果我错了 请纠正我 那么 我将如何创建视图矩阵 顺便说一下 我使用 C 作为编程语言 任何帮助 将不胜感激 首先是一些注意事项 您会在网络上和有关该主题的
  • 如果一个 ViewController 中有两个 UITableView,一个带有自定义单元格引用,另一个是简单的,会怎么样?

    我正在尝试在一个 ViewController 中使用两个 UITableView 一个 UITableView 带有自定义单元格的引用 另一个很简单 我已经编写了这段代码 但它给了我控制错误可能会到达非 void 函数的末尾 所以给我建议
  • 如何在SQL中实现过滤系统?

    现在我计划在我的网站上添加一个过滤系统 例子 ID apple COLOR red TASTE sweet ORIGIN US ID mango COLOR yellow TASTE sweet ORIGIN MEXICO ID banan
  • 如何更改 powershell 脚本中哈希表列的标题

    我对 Powershell 脚本编写相当陌生 我正在编写一个 power shell 脚本 其中声明了一个哈希表 如下所示 a 1 b 2 my hash my hash Add a b 当我在 Powershell 中打印该表时 哈希表的
  • 在 Task.WhenAll 中执行多个任务时的 C# 线程

    如果在单个线程上执行以下操作 会发生什么 await Task WhenAll items select x gt SomeAsyncMethod x Where SomeAsyncMethod is defined like this w
  • 如果没有 EnableWebMvc,RequestMapping 如何工作?

    I see RequestMapping无需注释即可工作 EnableWebMvc在 Java 配置类级别 这看起来像 EnableWebMvc不再需要 谁能让我理解这里的流程 这是我的工作example显示简单的jsp页面使用弹簧4 1v
  • SLF4J错误:类加载器具有不同类型的类对象

    试图找出为什么我在 tomcat 日志中收到以下错误 Caused by java lang LinkageError loader constraint violation when resolving method org slf4j
  • Java堆中的constantPoolClass?

    我继承了一个 Java 小程序 一个实际的 它在运行大约 4 天后抛出 OutOfMemory 异常 小程序的性质使得人们确实会长时间打开它 运行近两天后 jmap histo 将顶部堆消费者显示为 num instances bytes
  • Numpy 二维移动平均线

    我有一个二维 numpy 数组 我想取每个条目最近的 n 个条目的平均值 就像在一维数组上取滑动平均值一样 最干净的方法是什么 这与应用类似的概念filter to an image 幸运的是 scipy ndimage filters h
  • 奇怪的 HttpClient 结果

    当尝试从 Hitbox API 获取数据时 我得到了一个奇怪的结果 对于一个 API 的命令 这种情况每次都会发生 而对于另一个 API 的命令 这种情况只是有时发生 结果或多或少是这样的 这是我得到的最后结果 u001f b 0 0 0
  • HTML5画布覆盖透明渐变

    我正在 HTML5 中创建一个颜色选择器 如下面的渐变 它由三个要素组成 纯红色背景色 必须可变 从下到上黑 透明渐变 从左到右白色透明渐变 我已经成功创建了单个渐变和单个颜色 但我不知道如何将纯色和两个渐变叠加在一起 我怎样才能做到这一点