问题标签 [hsl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1288 浏览

html - Firefox 中的 hsl 颜色问题

我正在尝试使用 hsl() 声明 div 的边界,如下所示:

我使用的是 Firefox 3.5,根本没有呈现边框。如果将 hsl() 替换为 rgb(),则相同的代码可以完美运行

我在某处读到 Firefox 支持 hsl() 和 hsla()

难道我做错了什么?

如果不支持 hsl(),是否有人有任何代码可以将 hsl 转换为 rgb?

0 投票
3 回答
3482 浏览

algorithm - HSL 插值

如果我的 HSL 颜色的色调分量以度为单位,我如何正确地在两种色调之间进行插值?使用 (h1 + h2) / 2 似乎并非在所有情况下都能产生理想的结果。这里有两个例子说明了原因:

让:

红色 = 0°
黄色 = 60°
蓝色 = 240°

(红色 + 黄色)/2 = 30°(橙色)
(黄色 + 蓝色)/2 = 150°(蓝绿色)
(红色 + 蓝色)/2 = 120°(绿色)

如您所见,平均红色和蓝色会产生绿色而不是紫色/洋红色!但是,如果我们让:

红色 = 360°
黄色 = 60°
蓝色 = 240°

(红色 + 黄色)/2 = 210°(蓝绿色)
(黄色 + 蓝色)/2 = 150°(蓝绿色)
(红色 + 蓝色)/2 = 300°(洋红色)

现在,红色和蓝色会产生预期的颜色,但红色和黄色会产生蓝绿色!我可以通过什么方式插入颜色的色调分量,以使结果与混合实际油漆的预期相匹配?谢谢!

0 投票
4 回答
3462 浏览

colors - 与 HSL 的线性RGB 转换

有谁知道从 linearRGB 颜色(不是 sRGB 颜色)中获取 HSL 的方法?我见过很多 sRGB<->HSL 转换,但没有看到 linearRGB<->HSL。不确定这是否是基本相同的转换,但我会很感激有人对此有任何见解。

线性 RGB 与线性化 sRGB 不同(取 [0,255] 并使其变为 [0,1])。从/到 sRGB 的线性 RGB 转换位于http://en.wikipedia.org/wiki/SRGB。在 VBA 中,这将被表示(采用线性化 sRGB 值 [0,1]):

我尝试将线性 RGB 值发送到标准 RGB_to_HSL 例程并从 HSL_to_RGB 退出,但它不起作用。可能是因为当前的 HSL<->RGB 算法考虑了伽马校正,而线性 RGB 没有经过伽马校正 - 我不确切知道。我几乎没有看到可以做到这一点的参考资料,除了两个:

  1. http://en.wikipedia.org/wiki/HSL_and_HSV#cite_note-9上的参考资料 (编号为第 10 项)。
  2. 开源项目 Grafx2 @ http://code.google.com/p/grafx2/issues/detail?id=63#c22 的参考,其中贡献者声明他已经完成了线性 RGB <-> HSL 转换并提供.diff 文件中他的评论的附件中的一些 C 代码(我无法真正阅读:()

我的意图是:

  1. 从 sRGB(例如 FF99FF( R=255, G=153, B=255))发送到线性 RGB ( R=1.0, G=0.318546778125092, B=1.0)
    • 使用上面的代码(例如,G=153 将在线性 RGB 中从 获得sRGB_to_linearRGB(153 / 255)
  2. 到 HSL
  3. 将饱和度修改/调制 350%
  4. 从 HSL->Linear RGB->sRGB 发回,结果为 FF19FF( R=255, G=25, B=255)。

使用来自 .NET 的可用函数,例如.getHue来自 a 的System.Drawing.Color函数在任何 HSL 值的 100% 调制以上的任何 sRGB 空间中都不起作用,因此需要发送线性 RGB 而不是 sRGB。

0 投票
2 回答
3851 浏览

jquery - 通过 jquery 将 HSL 或 HSV 转换为 RGB

我正在寻找使用 jquery 生成随机的“相似”颜色。

据我了解,根据这个问题,解决此问题的最佳方法是使用HSL 或 HSV

问题是我似乎无法弄清楚如何……</p>

  1. 将 HSL 或 HSV 与 jquery 一起使用;或者
  2. 通过 jquery 将 HSL 或 HSV 转换为 RBG

我找到了这个颜色库,但如果可能的话,我想避免使用插件。有任何想法吗?

0 投票
4 回答
22348 浏览

javascript - 为什么这个 Javascript RGB 到 HSL 代码不起作用?

我在http://www.mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript找到了这个 RGB 到 HSL 的脚本。我找不到任何其他小的像样的。问题是这段代码甚至没有真正起作用。有人会知道为什么吗?(我不知道一点颜色数学,但也许它正在返回互补?)

编辑:当我运行rgbToHsl(126,210,22)它时,它给了我 [ .24, .81, .45 ],这是橙色的 HSL。

0 投票
21 回答
205624 浏览

algorithm - HSL 到 RGB 颜色转换

我正在寻找一种将 HSL 颜色转换为 RGB 的算法。

在我看来,HSL 的使用不是很广泛,所以我在寻找转换器时运气不佳。

0 投票
2 回答
2148 浏览

colors - 颜色名称为 RGB/Hex/HSL/HSV 等

我遇到了这个很棒的功能/命令。颜色转RGB,你可以这样做:

它将返回一个十六进制值。我想使用 Perl、Python 或 PHP 来扩展它,但我希望能够传入,例如,“yellow”并且该函数返回所有类型的黄色 - 它们的 hex/rgb/?/etc 值。

我已经实现了一个快速的解决方案,其中涉及将颜色名称映射到十六进制值,但现在我想要更精确并使用一些公式等来确定什么是什么。

但是,像往常一样,我不知道如何做到这一点!因此,我感谢有关如何执行此操作的任何实施建议。

谢谢大家

0 投票
6 回答
24799 浏览

java - 如何在 Java 中使用 HSL 颜色空间?

我查看了 ColorSpace 类,并找到了常量TYPE_HLS可能只是 HSL 的顺序不同)。

我可以使用这个常数Color从色调、饱和度和亮度中创建一个吗?如果没有,是否有任何 Java 类,或者我需要自己编写?

0 投票
4 回答
9296 浏览

iphone - 使用 Objective C 从 RGB 转换为 HSL

我对目标 c 很陌生,但已经编程了一段时间。我开始创建一个可以从 RGB 转换为 HSL 并再次转换回来的函数,但我觉得它太长并且方向错误。有谁知道执行此转换的简单方法?

0 投票
2 回答
848 浏览

c# - 以一定百分比向或远离色调的着色

我正在尝试模拟 Open XML 的色调效果。它所做的是通过改变色调来改变图像中像素的色调。它需要 2 个参数:1)hue(以度为单位)和 2)amt(数量,百分比)。我遇到的问题是#2。该规范指出:

Tint:将效果颜色值移向或远离色调指定的量。

  • amt (Amount) - 指定颜色值的偏移量。
  • 色调(Hue) - 指定要着色的色调。

不用管 XML 构造,我可以模拟amt100% 的值。例如,如果我想要蓝色(色调:240°),我可以创建这个(有色的)。这是一个例子:

原始着色(色调 = 240,数量 = 100%)。
原来的 修改的

这可以通过将色调设置为 240、保持饱和度和亮度相同并转换为 RGB 并写入每个像素来实现。

这是我无法实现的目标:

色调 = 240蓝色),数量 = 30%50%80%,分别
30% 50% 80%

同样,规范Amount指定颜色值的偏移量。我在这里尝试了各种方法来让它工作,但似乎无法(hue=hue*amount,,originalhue * amount + hue等)

更多示例:Hue= 120 ( green ), Amount = 30% , 50% , 80%100%。我能得到的100% 。
30% 50% 80% 100%

以下是上图中单个像素的一些值列表:

像素 159、116 - 蓝色图片

像素 159、116 - 绿色图片


所以,问题是:有谁知道这应该如何工作?

注意:这不是以下内容的重复: