|
|
1
28
只需将RGB值乘以要修改级别的量。如果其中一种颜色已经达到最大值,则无法使其更亮(无论如何都使用HSV数学)。 这与切换到hsv然后修改v的数学结果完全相同。这与切换到hsl然后修改l的结果相同,只要您不想开始失去饱和度。 |
|
|
2
46
在
XNA there is the
这里有一个扩展方法来对
因此,使用RGB在两种颜色之间执行一个简单的LERP操作是:
应用此方法的示例如下:
|
|
|
3
20
HSV(色调/饱和度/值)也称为HSL(色调/饱和度/亮度)只是一种不同的颜色表示。 使用此表示更容易调整亮度。所以从RGB转换为HSV,加亮“V”,然后再转换回RGB。 下面是一些要转换的C代码
|
|
|
4
14
富纽曼 discusses HSL color 关于他的博客上的.NET System.Drawing.Color,甚至 provides an HSLColor class 这一切都是为了你。将system.drawing.color转换为hslcolor,根据亮度添加/减去值,然后转换回system.drawing.color以在应用程序中使用。 |
|
|
5
10
您可以将颜色转换为HSL颜色空间,在那里进行操作,然后转换回您选择的颜色空间(很可能是RGB)。 较浅的颜色具有较高的L值,较深的颜色具有较低的L值。 以下是相关的资料和所有的方程式: http://en.wikipedia.org/wiki/HSL_color_space 另一种方法是简单地用白色或黑色插入颜色。这也会降低颜色的饱和度,但计算起来更便宜。 |
|
|
6
9
我在system.windows.forms中使用了controlpaint.dark()和.light()。 |
|
|
7
4
我猜你用的是带字节值(0到255)的RGB,因为这在任何地方都很常见。
对于较亮的颜色,请使用白色的RGB平均RGB值。或者,为了控制光亮的程度,将它们按一定比例混合。让
对于较暗的颜色,请使用黑色的RGB-这是所有的零,使数学更容易。 我遗漏了一些细节,比如将结果转换回字节,这可能是您想要做的。 |
|
|
8
3
如果您使用的是RGB颜色,我会将此颜色参数转换为 HSL (色调、饱和度、亮度),修改亮度参数,然后转换回RGB。通过谷歌搜索,你会发现很多关于如何进行这些颜色表示转换(从RGB到HSL和Viceversa)的代码示例。 这就是我很快发现的: http://bytes.com/forum/thread250450.html |
|
|
9
0
假设您得到的颜色是RGB,首先将其转换为hsv(色调,饱和度,值)颜色空间。然后增加/减少该值以产生颜色的较亮/较暗阴影。然后转换回RGB。 |
|
10
0
如果您的颜色是RGB格式(或者可能是CMYK格式),您可以使用相当粗糙的方法来增加颜色的每个组件的值。例如,在HTML中,颜色表示为三个两位数的十六进制数字。#ff0000将为您提供一个亮红色,然后可以通过将g和b分量的值增加相同的量(例如ff5555)使其褪色(使红色变浅)。大概对于色调、饱和度和明度(hsl)的颜色,你可以提高l分量,但我不能确定;我对这个颜色空间不太熟悉。 不过,正如我所说,这种方法相当粗糙。从我的生活信使的记忆中,听起来好像你正在尝试做渐变,它可以在Windows演示基金会(WPF,部分.NET 3)中很容易地被应用。WPF支持许多不同类型的渐变画笔,包括线性和径向渐变。 我强烈推荐亚当·内森的书 Windows Presentation Foundation Unleashed 作为WPF的一个很好和彻底的介绍。 高温高压 |
|
|
11
0
在HSL/HSV中,颜色的任何变化都是最好的。 一个好的测试是在RGB空间和HSL空间中插入两个等效值。HSL空间的斜坡看起来像是一个自然的过程。在RGB空间中,它通常看起来很不自然。HSL映射到我们的视觉色彩空间感知比RGB好得多。 |
|
12
0
转换为hsv或其他颜色空间的想法似乎很好,可能对于精确的颜色工作是必要的,但对于普通目的而言,在RGB中工作的错误可能并不重要。此外,处理边界情况也很困难:RGB是一个立方体形状的空间,而HSV则不是。如果使用字节值,则可以在空间之间有多对一和一对多的映射。这可能是问题,也可能不是问题,具体取决于应用程序。牛传染性胃肠炎病毒 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |