【发布时间】:2013-06-20 20:43:02
【问题描述】:
我正在设计一些彩色块,其中文本是一种颜色,背景是相同颜色的较浅/不饱和阴影(想想警告文本,其中的文字是红色的,背景是浅粉色的)。
文字颜色为#990000。背景颜色是#f2dede。在 Photoshop HSV 中,这相当于 hsv(0, 100%, 60%) 和 hsv(0, 8%, 95%)。
有了这个颜色集,我希望能够折腾其他颜色——漂亮的绿色或黄色——并自动计算背景。
使用 LESSCSS,我试过了:
@color: desaturate( lighten( hsv(0, 100%, 60%), 35%), 92% );
但我无法通过在 Photoshop 中执行相同的更改来渲染我生成的颜色。
这个颜色理论超出了我的理解,但我的问题是:给定 Photoshop HSB 值,我如何将一种颜色转换为另一种颜色?
更新:
我觉得它好一点——HSB 和 HSL 中的 L 和 B 根本不兼容,所以淡化“B”增量的颜色永远不会起作用。
这很草率,但这样的工作:
@foreground: #990000;
@background: hsv(hsvhue(@foreground),
(hsvsaturation(@foreground)-92%),
(hsvvalue(@foreground)+35%));
缺少类似于变亮/变暗的“值”命令,我认为这是我能得到的最好的。 (如果我没有收到任何其他回复,我会将此标记为答案)。
非常感谢...内特
【问题讨论】:
-
html 中没有
hsv色彩空间,它要么是rgb,要么是hsl。那么,当您已经拥有十六进制的rgb#990000->rgb(153,0,0)时,为什么不直接使用rgb。 -
HTML 中没有 HSV 颜色空间,但 LESS 中有,Photoshop 中有。我正在使用 HSV,因为 LESS 具有色相、饱和度和亮度命令。不过,我很乐意为 RGB 提出同样的问题。如果我有两种 RGB 颜色,并且我想使用 LESS CSS 的饱和度、亮度和色调命令进行计算,我该如何计算出这些数字?目标是开发“算法”,这样我就可以向它添加任何颜色,并动态生成漂亮的匹配背景颜色。
-
您也可以对 rgb 颜色使用 less 颜色修饰符。你不需要先转换它。对于算法,您可以在 google 上点击:rapidtables.com/convert/color/rgb-to-hsl.htm ...
-
嗯。我不是很清楚。如果我有两种颜色,除了反复试验之外,我如何弄清楚如何使用 LESSCSS 命令(旋转等)从一种颜色转换为另一种颜色?我有#990000,它在#f2dede 之上看起来不错。我想弄清楚导致这种情况发生的 LESS 命令集,以便我可以任意更改 #990000 并使背景仍然具有适当的对比度等。