问题标签 [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.
html - Firefox 中的 hsl 颜色问题
我正在尝试使用 hsl() 声明 div 的边界,如下所示:
我使用的是 Firefox 3.5,根本没有呈现边框。如果将 hsl() 替换为 rgb(),则相同的代码可以完美运行
我在某处读到 Firefox 支持 hsl() 和 hsla()
难道我做错了什么?
如果不支持 hsl(),是否有人有任何代码可以将 hsl 转换为 rgb?
algorithm - HSL 插值
如果我的 HSL 颜色的色调分量以度为单位,我如何正确地在两种色调之间进行插值?使用 (h1 + h2) / 2 似乎并非在所有情况下都能产生理想的结果。这里有两个例子说明了原因:
让:
红色 = 0°
黄色 = 60°
蓝色 = 240°
(红色 + 黄色)/2 = 30°(橙色)
(黄色 + 蓝色)/2 = 150°(蓝绿色)
(红色 + 蓝色)/2 = 120°(绿色)
如您所见,平均红色和蓝色会产生绿色而不是紫色/洋红色!但是,如果我们让:
红色 = 360°
黄色 = 60°
蓝色 = 240°
(红色 + 黄色)/2 = 210°(蓝绿色)
(黄色 + 蓝色)/2 = 150°(蓝绿色)
(红色 + 蓝色)/2 = 300°(洋红色)
现在,红色和蓝色会产生预期的颜色,但红色和黄色会产生蓝绿色!我可以通过什么方式插入颜色的色调分量,以使结果与混合实际油漆的预期相匹配?谢谢!
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 没有经过伽马校正 - 我不确切知道。我几乎没有看到可以做到这一点的参考资料,除了两个:
- http://en.wikipedia.org/wiki/HSL_and_HSV#cite_note-9上的参考资料 (编号为第 10 项)。
- 开源项目 Grafx2 @ http://code.google.com/p/grafx2/issues/detail?id=63#c22 的参考,其中贡献者声明他已经完成了线性 RGB <-> HSL 转换并提供.diff 文件中他的评论的附件中的一些 C 代码(我无法真正阅读:()
我的意图是:
- 从 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)
)
- 使用上面的代码(例如,G=153 将在线性 RGB 中从 获得
- 到 HSL
- 将饱和度修改/调制 350%
- 从 HSL->Linear RGB->sRGB 发回,结果为
FF19FF
(R=255, G=25, B=255
)。
使用来自 .NET 的可用函数,例如.getHue
来自 a 的System.Drawing.Color
函数在任何 HSL 值的 100% 调制以上的任何 sRGB 空间中都不起作用,因此需要发送线性 RGB 而不是 sRGB。
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。
algorithm - HSL 到 RGB 颜色转换
我正在寻找一种将 HSL 颜色转换为 RGB 的算法。
在我看来,HSL 的使用不是很广泛,所以我在寻找转换器时运气不佳。
colors - 颜色名称为 RGB/Hex/HSL/HSV 等
我遇到了这个很棒的功能/命令。颜色转RGB,你可以这样做:
它将返回一个十六进制值。我想使用 Perl、Python 或 PHP 来扩展它,但我希望能够传入,例如,“yellow”并且该函数返回所有类型的黄色 - 它们的 hex/rgb/?/etc 值。
我已经实现了一个快速的解决方案,其中涉及将颜色名称映射到十六进制值,但现在我想要更精确并使用一些公式等来确定什么是什么。
但是,像往常一样,我不知道如何做到这一点!因此,我感谢有关如何执行此操作的任何实施建议。
谢谢大家
java - 如何在 Java 中使用 HSL 颜色空间?
我查看了 ColorSpace 类,并找到了常量TYPE_HLS
(可能只是 HSL 的顺序不同)。
我可以使用这个常数Color
从色调、饱和度和亮度中创建一个吗?如果没有,是否有任何 Java 类,或者我需要自己编写?
iphone - 使用 Objective C 从 RGB 转换为 HSL
我对目标 c 很陌生,但已经编程了一段时间。我开始创建一个可以从 RGB 转换为 HSL 并再次转换回来的函数,但我觉得它太长并且方向错误。有谁知道执行此转换的简单方法?
c# - 以一定百分比向或远离色调的着色
我正在尝试模拟 Open XML 的色调效果。它所做的是通过改变色调来改变图像中像素的色调。它需要 2 个参数:1)hue
(以度为单位)和 2)amt
(数量,百分比)。我遇到的问题是#2。该规范指出:
Tint:将效果颜色值移向或远离色调指定的量。
- amt (Amount) - 指定颜色值的偏移量。
- 色调(Hue) - 指定要着色的色调。
不用管 XML 构造,我可以模拟amt
100% 的值。例如,如果我想要蓝色(色调:240°),我可以创建这个(有色的)。这是一个例子:
原始和着色(色调 = 240,数量 = 100%)。
这可以通过将色调设置为 240、保持饱和度和亮度相同并转换为 RGB 并写入每个像素来实现。
这是我无法实现的目标:
色调 = 240(蓝色),数量 = 30%、50%和80%,分别
同样,规范Amount
说指定颜色值的偏移量。我在这里尝试了各种方法来让它工作,但似乎无法(hue=hue*amount
,,originalhue * amount + hue
等)
更多示例:Hue= 120 ( green ), Amount = 30% , 50% , 80%和100%。我能得到的100% 。
以下是上图中单个像素的一些值列表:
像素 159、116 - 蓝色图片
像素 159、116 - 绿色图片
所以,问题是:有谁知道这应该如何工作?
注意:这不是以下内容的重复:
- 在保持整体亮度的同时更改位图的色调
- 在 C# 中使用 ImageAttributes 旋转色调
- ...或者我可以在 SO 上找到的任何其他内容