标签: hsb

Javascript准确地将HSB/HSV颜色转换为RGB

我需要准确地将HSB转换为RGB,但我不知道如何解决将小数转换为整数而不进行舍入的问题.这是我在colorpicker库中使用的当前函数:

HSBToRGB = function (hsb) {

    var rgb = { };
    var h = Math.round(hsb.h);
    var s = Math.round(hsb.s * 255 / 100);
    var v = Math.round(hsb.b * 255 / 100);

        if (s == 0) {

        rgb.r = rgb.g = rgb.b = v;
        } else {
        var t1 = v;
        var t2 = (255 - s) * v / 255;
        var t3 = (t1 - t2) * (h % 60) / 60;

            if (h == 360) h = 0;

                if …
Run Code Online (Sandbox Code Playgroud)

javascript rgb converter hsv hsb

39
推荐指数
4
解决办法
4万
查看次数

HSB vs HSL vs HSV

我正在将Color类作为c ++中非常基本的图形API的一部分.所以我决定看一下微软的.NET框架,发现他们的Color类有HSB的功能.

然后我开始研究,以确定我是否应该在课堂上提供HSB,HSL或HSV或所有这些.

所以,我有3个关于HSB,HSL,HSV的问题:

  1. HSB与HSL相同吗?

  2. 如果没有,为什么没有HSBL甚至HSBLV?

  3. 我发现有很多不同的计算这些值的方法,有人能告诉我最快的吗?

c++ hsl colors hsv hsb

36
推荐指数
4
解决办法
3万
查看次数

色彩理论:如何将Munsell HVC转换为RGB/HSB/HSL

我正在查看描述牙科中用于描述牙齿颜色的标准颜色的文件.他们引用色调,,色度值,并指出它们来自1905年Munsell的颜色描述:

AH Munsell在1905年开发的颜色符号系统根据三个属性识别颜色:HUE,VALUE(亮度)和CHROMA(饱和度)[ 15 ]

HUE(H):Munsell将色调定义为我们将一种颜色与另一种颜色区分开来的质量.他选择了五种主要颜色:红色,黄色,绿色,蓝色和紫色; 五种中间色:黄红色,绿黄色,蓝绿色,紫蓝色和红紫色.它们被放置在相同点的色环周围,这些点之间的颜色是两者的混合,有利于更接近的点/颜色(见图1).

替代文字

VALUE(V):此符号表示颜色相对于中性灰度的亮度或暗度,中性灰度从绝对黑色(值符号0)延伸到绝对白色(值符号10).这实际上是颜色的"明亮"程度.

CHROMA(C):这表示给定色调与相同值的中性灰色的发散程度.根据要评估的样品的强度(饱和度),色度的范围从0变为中性灰色到10,12,14或更远.

有各种用于分类颜色的系统,Vita系统最常用于牙科.这使用字母A,B,C和D来表示牙齿的色调(颜色).色度和值均由1到4的值表示.A1比A4轻,但A4比A1更饱和.如果按照值(即亮度)的顺序放置,从最亮到最暗的顺序将是:

A1,B1,B2,A2,A3,D2,C1,B3,D3,D4,A3.5,B4,C2,A4,C3,C4

每种色调的色调,值和色度的确切值如下所示(16)

替代文字

所以我的问题是,任何人都可以将Munsell HVC转换为RGB,HSB或HSL吗?

Hue    Value (Brightness) Chroma(Saturation)
===    ================== ==================
4.5    7.80               1.7
2.4    7.45               2.6
1.3    7.40               2.9
1.6    7.05               3.2
1.6    6.70               3.1
5.1    7.75               1.6
4.3    7.50               2.2
2.3    7.25               3.2
2.4    7.00               3.2
4.3    7.30               1.6
2.8    6.90               2.3
2.6    6.70               2.3
1.6    6.30               2.9
3.0    7.35               1.8
1.8    7.10               2.3
3.7    7.05               2.4
Run Code Online (Sandbox Code Playgroud)

他们说价值(亮度)不同0..10,这很好.所以我认为7.05意味着70.5%. …

hsl rgb colors hsb color-theory

25
推荐指数
5
解决办法
3万
查看次数

是否有将UIColor转换为色相饱和度亮度的功能?

我可以用RGB值设置uicolor:

[UIColor colorWithRed:0.53 green:0.37 blue:0.11 alpha:1.00];
Run Code Online (Sandbox Code Playgroud)

我可以用hsb值设置uicolor:

[UIColor colorWithHue:0.10 saturation:0.16 brightness:0.13 alpha:1.00];
Run Code Online (Sandbox Code Playgroud)

我也可以将它转换回RGB:

CGFloat* colors = CGColorGetComponents(Color1.CGColor);
Run Code Online (Sandbox Code Playgroud)

但我如何从uicolor获得HSB?

uicolor hsb ios

17
推荐指数
2
解决办法
2万
查看次数

将HSB/HSV颜色转换为HSL

我可以将HSB颜色转换为HSL吗?

Photoshop在其颜色选择器中显示HSB颜色.HSL颜色可以在CSS中使用.

我试过这个JS:

function hsb2hsl(h, s, b) {
  return {
    h: h,
    s: s,
    l: b-s/2
  }
}

hsb2hsl(0, 100, 50).l == 0不是25

更新:如果不转换HSB→RGB→HSL,我可以这样做吗?

javascript hsl colors hsv hsb

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

在RGB模型中,有多少种不同的色调可用?

在RGB模型中,每个像素由3个字节定义,分别用于R,G和B. 这给出了一个总的2点24的颜色,包括256种色调的灰色.

floats(非bytes)表示HSV/HSB/HSL模型是很常见的.大多数描述将色调描述为锥形中的"角度",因此将其视为实数是明智的.

但这与2 24种总颜色的实际限制有何关系?有多少种不同的色调?更重要的是,在我看来,这个数字应该取决于其他参数 - 例如饱和度.


有趣的阅​​读:http://www.dig.cs.gc.cuny.edu/manuals/Gimp2/Grokking-the-GIMP-v1.0/node52.html

rgb colors hsb

11
推荐指数
1
解决办法
2373
查看次数

.Net Color结构是否使用HSB或HSL颜色空间?

据我所知,HSL和HSB颜色空间非常相似,两者都使用相同的0-360色轮作为色调,并使用相同的0-1值进行饱和.它们之间的一个区别是在HSB模型中你有亮度,其中0是黑色,1是全强度的颜色,而在HSL中你有亮度/亮度,其中0仍然是黑色但1是白色.

在.NET Color结构采用RGB空间,但GetHue(),GetSaturation()GetBrightness()功能.

这里的文档令人困惑.用于GetBrightness():

/// <summary>Gets the hue-saturation-brightness (HSB) brightness value for this 
/// System.Drawing.Color structure.</summary>
Run Code Online (Sandbox Code Playgroud)

好吧,这很有意义,.Net似乎正在使用HSB ......

/// <returns>The brightness of this System.Drawing.Color. The brightness ranges 
/// from 0.0 through 1.0, where 0.0 represents black and 1.0 represents white.
/// </returns>
Run Code Online (Sandbox Code Playgroud)

呃......所以最大值代表白色,而不是最亮的颜色.尽管他们的文档和命名始终指的是亮度,但我很确定返回的值实际上是亮度/亮度,即.Net实际上使用HSL模型而不是HSB.

谁能证实这一点?它是文档中的错误GetBrightness(),错误,还是我以某种方式误解了理论?

.net hsl system.drawing hsb color-theory

10
推荐指数
1
解决办法
645
查看次数

.NET 4.5 DateTime格式/转换上索布文化的bug

使用上索布文化(hsb),转换为字符串的DateTime对象使用格式"d.M.yyyyH.mm.ss'hodź.'".例如ToString("G")返回"31. 12. 20115.06.07hodź." 2011年12月31日上午05:06:07

问题是尝试将这样的字符串转换回DateTime不会导致true.甚至更简单的字符串如"1. 1. 2011"或"1.1.2011"也没有成功.并且万一有人建议在转换/坚持时传递文化:我当然这样做了.

尝试解析"1.2.3"会导致当前日期的时间为01:02:03.

我认为这是一个错误.或者有人知道可能出现什么问题吗?

我在Windows 8 RTM计算机上使用.NET 4.5 RTM.

样品:

DateTime date = DateTime.Now;

CultureInfo culture = new CultureInfo("hsb");
string dateString = date.ToString("G", culture);
DateTime convertedDate; 

bool dateOkay = DateTime.TryParse(dateString, culture,
   DateTimeStyles.AllowInnerWhite, out convertedDate);
Console.WriteLine(dateOkay); 
// This results false although the date string was read by 
// ToString("G") (i.e. '20. 9. 2012 12.28.10 hod?.') and should be okay

dateString = "1. 1. 2000";
dateOkay = DateTime.TryParse(dateString, culture,
   DateTimeStyles.AllowInnerWhite, out convertedDate);
Console.WriteLine(dateOkay); 
// This results in …
Run Code Online (Sandbox Code Playgroud)

.net datetime hsb

7
推荐指数
1
解决办法
654
查看次数

迭代颜色

是否有一种迭代颜色的好方法?我知道这听起来像一个奇怪的问题,但这是一个类比.

假设你写了一个你环游地球的游戏.您选择一个起点,然后定义重复应用的规则.例如:从地球上的当前位置开始,然后定义穿过您的位置以及北极和南极的大圆.每走一步,沿着这个圆圈行驶10英里.每一步都会带您进入与之前相似的气候(尽管有时候你会因为你在海洋中而非常潮湿).或者每步走6,000英里.现在每一步都是一个非常不同的气候.

现在想象一个用随机颜色在屏幕上绘制元素的程序.也许您将增量设置为较小的数字,每种颜色与之前的颜色非常相似.也许你把它设置得很高,每种颜色都与之前的颜色非常不同.

如果你使用RGB值并逐渐递增R,G和B,你会逐渐改变,直到其中一个值换行并且你会突然改变.

对于HSB值,色调的色域是圆形的,因此没有不连续性.S和B不是,你可能遇到一段难以区分的颜色,因为S太低而且看起来都很白.将S和B保持在最大值是可能的,尽管它留下了很多颜色.

程序的每次运行仅使用少量颜色(10到15).我想随意选择值,以便有一次颜色和谐地混合,一次它们发生冲突,一次它们都是粉彩,有一次它们是饱和和柔和的混合等.

rgb colors hsb

6
推荐指数
1
解决办法
3003
查看次数

将RGBW颜色转换为标准RGB/HSB表示

我正在为家庭自动化系统中的灯光管理构建一个界面.我设法控制各种供应商的标准开/关和可调光,几乎没有问题,但现在我遇到了与RGB灯有关的问题.

我目前使用的是RGBW LED灯条 - 具体来说,我正在使用低成本的RGBW灯:灯由四个LED组成,每个LED都可以单独控制.

为了更清楚 - 我正在研究一些c#代码,它们应该检索当前选择的颜色并在UI中显示它,并使用户能够指定灯光的新颜色.为了设置颜色并检索它,我必须使用命令提供程序,使我能够通过Web服务发送和接收命令.

提供商使用RGBW颜色 - 使用红色,绿色,蓝色和白色四个组件.为了表示我界面上的当前灯光颜色,我想将服务返回的RGBW颜色转换为更标准的RGB/HSB方案.

搜索网页,我找到的唯一的颜色转换参考(不包括rgb到rgbw转换的c ++示例,基于我的理解,必须有一些严重的错误)本文显示了从HSI到RGBW的转换,这是与我需要的相反:链接在这里

我正在寻找一些关于如何实现这种转换的见解(或者为什么不可能的简单解释).就我而言,从RGB到RGBW的转换是任意的 - 单个RGB值可以表示为多个RGBW值,但相反的转换应该是单义的.另请注意,虽然我使用的是c#,但也可以自由地引用其他语言的算法 - 语言不是问题,问题是我不知道数学做颜色转换.

rgb colors hsb color-theory

6
推荐指数
2
解决办法
7330
查看次数

标签 统计

hsb ×10

colors ×6

rgb ×5

hsl ×4

color-theory ×3

hsv ×3

.net ×2

javascript ×2

c++ ×1

converter ×1

datetime ×1

ios ×1

system.drawing ×1

uicolor ×1