标签: hsl

以一定的百分比着色或远离色调

我正在尝试模拟Open XML 的Tint效果.它的作用是通过移动色调来改变图像中像素的色调.它需要2个参数:1)hue(以度为单位)和2)amt(数量,百分比).我遇到问题是#2.规范说明:

色调:根据指定的量将颜色值朝向或远离色调移动.

  • amt(Amount) - 指定颜色值的移位量.
  • hue(Hue) - 指定要着色的色调.

从不关注XML构造,我可以模拟具有amt100%的值.所以,例如,如果我想要蓝色(色调:240°),我可以创建它(有色的).这是一个例子:

原始着色(色调= 240,金额= 100%).
原版的 改性

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

这是我无法实现的:

色调= 240(蓝色),金额= 30% ,50%80%,分别
30% 50% 80%

再次,对于规范Amount说,通过颜色值多少转移指定.我已经试过各种方法在这里得到这个工作,但似乎无法(hue=hue*amount,originalhue * amount + hue,等)

更多实例:Hue = 120(绿色),数量= 30%,50%,80%100%.在100%的一个,我可以得到.
30% 50% 80% 100%

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

Pixel 159,116 - 蓝色图片

        Hue    Amount    R …

c# hsl gdi+ image

5
推荐指数
1
解决办法
790
查看次数

RGB到HSL功能的饱和度计算不正确

有人知道从RGB颜色获得饱和度的正确公式吗?

我已经有了一个功能.我已经尝试过在互联网上发布的大量内容,但只有这一个似乎对我有用(第一次),除了饱和度水平偶尔会稍微偏离.

rgb(204,153,51)应该相等hsl(40,60,50),而不是我hsl(40,75,50).你可以看到我的色调和亮度是正确的,事实上,饱和度大多也是正确的,但有时它不是,我需要纠正,如果可以的话.

这是我到目前为止构建的,所以我可以检查我的图像的所有颜色值是否正确,然后将它们存储在我的搜索引擎的数据库中.

在此输入图像描述

这是我认为饱和度计算错误的问题:

function RGBtoHSL($red, $green, $blue)
{
    $r = $red / 255.0;
    $g = $green / 255.0;
    $b = $blue / 255.0;
    $H = 0;
    $S = 0;
    $V = 0;

    $min = min($r,$g,$b);
    $max = max($r,$g,$b);
    $delta = ($max - $min);

    $L = ($max + $min) / 2.0;

    if($delta == 0) {
        $H = 0;
        $S = 0;
    } else {
        $S = $delta / $max;

        $dR = ((($max - $r) …
Run Code Online (Sandbox Code Playgroud)

php hsl rgb colors color-palette

5
推荐指数
1
解决办法
1302
查看次数

0为饱和度和亮度不起作用,但hsl/hsla为0%?

我正在尝试一个简单的演示,我给了元素颜色hsl.根据我的经验,我知道0CSS 中的(ZERO)是无单元的.如果要将0指定为值,则可以离开单位.

然而,hsl/hsla似乎并非如此.在Chrome和Firefox上,都会导致无效的属性值.

一个切线相关的问题是这个,但它包含的答案是零应该是指无规则的指标.

hsla(0,0%,0%,0)的任何错误,变成hsla(0,0,0,0)?(缺少百分号)

hsl(0,0,0)     // error
hsl(0,0%,0)    // error
hsl(0,0,0%)    // error
Run Code Online (Sandbox Code Playgroud)

它是否专门设计用于零以外的单位?有没有这样的其他属性,其中一个单位在零旁边是必须的?

css hsl colors units-of-measurement

5
推荐指数
1
解决办法
386
查看次数

将 YUV 绕过 RGB 步骤转换为 HSL 或 HSV

维基百科和大量在线资源为 RGB 之间的各种颜色空间转换提供了详细且丰富的帮助。我需要的是直接的 YUV->HSL/HSV 转换

\n\n

事实上,我需要的只是色调(不太关心饱和度或亮度亮度/值)。换句话说,我只需要计算给定 YUV 颜色的“颜色角度”。

\n\n

任何语言的代码就足够了,尽管我更喜欢 C 风格的语法。

\n\n

请注意,YUV 我指的是 Y\xe2\x80\xb2UV,又名 YCbCr(如果这有什么区别的话)。

\n

hsl colors yuv hsv color-space

5
推荐指数
1
解决办法
5339
查看次数

在 SCSS 中使用 HSLA 中的 CSS 变量

所以我一直在尝试在HSLA中使用CSS变量。我需要保持相同的颜色,但只需更改不透明度。

<div>
// content here
</div>
Run Code Online (Sandbox Code Playgroud)

社会保障体系

:root {
  --color: 332, 61%, 78%;
}

div {
  background: hsla(var(--color), 0.5);
}
Run Code Online (Sandbox Code Playgroud)

https://codepen.io/sammiepls/pen/zLpvXY

所以我想我可以将 hsl 颜色保留在那里,并通过使用变量来更改悬停时的不透明度或诸如此类的东西。如果我只使用纯 CSS,它就可以工作。但我使用的是 SCSS,它导致它失败,因为 SASS 有它自己的 HSL 函数,需要三个值;我得到的错误基本上是没有足够的参数。有人找到解决办法吗?我尝试在整个函数周围使用字符串插值 #{} 但它不起作用。

hsl sass css-variables

5
推荐指数
1
解决办法
3961
查看次数

CSS:为什么将十六进制颜色转换为 hsl,然后再转换回十六进制会导致不同的值

我发现的奇怪的事情。当转换#579f2f为 hsl 时,我到达hsl(99, 54%, 40%);. 当将其转换回十六进制时,我得到#559d2f。我使用了各种在线工具来测试这一点。

我猜原因是 hsl 将颜色描述为色调 (0-360)、饱和度 (0-100%) 和亮度 (0-100%),而十六进制只是 RGB (0-255,0-255,0-255 )写为三个十六进制数,因此 hsl 描述的颜色空间(或您可能表达的颜色数量)是不同的。

RGB: 255^3 = 16,581,375 colors
HSL: 360*100*100 = 3,600,000 colors
Run Code Online (Sandbox Code Playgroud)

我的这个假设是正确的还是有其他原因?

css hsl rgb

5
推荐指数
1
解决办法
4588
查看次数

将HSL转换为RBG

我正在尝试将一些HSL值转换为RBGData.Colour模块.Hackage doc说,Hue总是在0-360范围内.但现在有任何范围SaturationLightness价值观.它们是在[0,100]还是在[0,1]范围内?

我认为第一个变体是正确的,但似乎不是.

?> hsl 100 50 50
RGB {channelRed = 866.6666666666692, channelGreen = -2400.0, channelBlue = 2500.0}
Run Code Online (Sandbox Code Playgroud)

比我尝试使用范围[0,1]来饱和度和亮度.

?> fmap truncate . (\(h,s,l) -> hsl h s l) $ (0,0,0)
RGB {channelRed = 0, channelGreen = 0, channelBlue = 0}
it :: RGB Integer
Run Code Online (Sandbox Code Playgroud)

这就是为什么我开始以为只Saturation应该是一个Double[0,1].

例如,我们在HSL格式上有一些颜色值.

?> let c = (34.0,0.54,68.0)
c :: (Double, Double, Double)
Run Code Online (Sandbox Code Playgroud)

比我们将其转换为RGB并截断所有值

?> fmap …
Run Code Online (Sandbox Code Playgroud)

hsl rgb haskell colors

4
推荐指数
1
解决办法
629
查看次数

C# setHue(或者,将 HSL 转换为 RGB 并设置 RGB)

C#有一个很方便的getHue方法,但是我找不到set Hue方法。有吗?

如果不是,我认为在更改色调后定义颜色的最佳方法是将 HSL 值转换为 RGB,然后设置 RGB 值。我知道互联网上有用于执行此操作的公式,但是我如何最好地使用 C# 执行从 HSL 到 RGB 的这种转换?

谢谢你

c# hsl rgb colors

4
推荐指数
2
解决办法
6687
查看次数

如何优化RGB到HSL转换功能的执行时间?

我已经创建了这个函数来将RGB颜色转换为HSL颜色.它完美无缺.

但我需要让它运行得更快,因为它用于替换画布上的颜色,我需要减少更换的时间.由于图像包含360k像素(600x600px),因此任何东西都可以让它更快.

这是我目前的实施:

/**
 * Convert RGB Color to HSL Color
 * @param {{R: integer, G: integer, B: integer}} rgb
 * @returns {{H: number, S: number, L: number}}
 */
Colorize.prototype.rgbToHsl = function(rgb) {
    var R = rgb.R/255;
    var G = rgb.G/255;
    var B = rgb.B/255;
    var Cmax = Math.max(R,G,B);
    var Cmin = Math.min(R,G,B);
    var delta = Cmax - Cmin;
    var L = (Cmax + Cmin) / 2;
    var S = 0;
    var H = 0;

    if (delta !== 0) { …
Run Code Online (Sandbox Code Playgroud)

javascript optimization hsl rgb

4
推荐指数
1
解决办法
394
查看次数

在python3中将hsl转换为十六进制

我有以下字符串取自原子一暗语法

one_dark_syn = """
@hue-1:   hsl(187, 47%, 55%); // <-cyan
@hue-2:   hsl(207, 82%, 66%); // <-blue
@hue-3:   hsl(286, 60%, 67%); // <-purple
@hue-4:   hsl( 95, 38%, 62%); // <-green
@hue-5:   hsl(355, 65%, 65%); // <-red 1
@hue-5-2: hsl(  5, 48%, 51%); // <-red 2
@hue-6:   hsl( 29, 54%, 61%); // <-orange 1
@hue-6-2: hsl( 39, 67%, 69%); // <-orange 2
"""
Run Code Online (Sandbox Code Playgroud)

我想使用 python 将 hsl 值交换为十六进制。到目前为止,我已经编写了一组看起来非常令人讨厌的循环来将值解析为 numpy 数组:

od_colors = [i.split(";")[0].split(":")[1] for i in one_dark_syn.split("\n") if "hsl" in …
Run Code Online (Sandbox Code Playgroud)

python hsl hex colors python-3.x

4
推荐指数
1
解决办法
7561
查看次数