做颜色渐变相关问题的时候,发觉颜色渐变并不是数值大小的渐变…
各种搜索之后,发现有HSV、HSL、RGB、CMYK等各种格式…
RGB不是那样子渐变的…
在wiki查了一下公式
http://en.wikipedia.org/wiki/HSL_color_space
然后转成了代码
//Convert HSL to RGB
//H: Hue ( 0 to 360 )
//S: Saturation ( 0 to 1 )
//L: Ligntness ( 0 to 1 )
private function HSL_TO_RGB(H:Number,S:Number,L:Number):Number
{
var C:Number;
if(L <= 0.5) C = 2 * L * S;
else C = (2 - 2 * L) * S;
var H2:Number = Math.floor(H/60);
var X:Number = C * ( 1 - Math.abs(H2 % 2 - 1) );
var R:Number;
var G:Number;
var B:Number;
switch(H2)
{
case 0:
R = C;
G = X;
B = 0;
break;
case 1:
R = X;
G = C;
B = 0;
break;
case 2:
R = 0;
G = C;
B = X;
break;
case 3:
R = 0;
G = X;
B = C;
break;
case 4:
R = X;
G = 0;
B = C;
break;
case 5:
R = C;
G = 0;
B = X;
break;
default:
R = G = B = 0;
break;
}
var m:Number = L - 0.5 * C;
R += m;
G += m;
B += m;
R = Math.floor( R * 255);
G = Math.floor( G * 255);
B = Math.floor( B * 255);
return R * 65536 + G * 256 + B;
}
这样就可以做出来符合自己要求的Lightness的过渡了。
=。=
现在在想,折腾出具有这么多计算的函数来进行颜色的过渡,性能肯定好不到哪里去。是不是做一个alhpa由1变0的黑色图层渐变更直接一些呢。
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0028/9953/db56b68f-dba5-3288-828c-c009b6f2643e-thumb.png)
- 大小: 34 KB
分享到:
相关推荐
- 示例代码可能包括`HslToRgb`和`RgbToHsl`函数,分别接收HSL和RGB的三个分量作为参数,返回对应的另一种颜色模型的值。 5. **学习价值** - 这个Demo对于理解颜色模型和它们之间的转换非常有帮助,可以帮助开发者...
我们知道在网页中的颜色值设置都是用16进制的RGB来表示的,比如#FFFFFF,表示R:255,G:255,B:255的白色。 现在请设计一个函数可以转换RGB的16进制至10进制,或者转换10进制至16进制输出格式。 例: print( ...
首先,代码读取图像文件,并将图像从RGB空间转换为HSL空间。然后,对每个像素的H、S、L分量进行处理,通过一系列计算将HSL值转化为RGB值。 转换过程中,对于每个像素,代码首先检查饱和度(S)。如果饱和度为0,...
2. **HSL转RGB算法**: HSL到RGB的转换涉及到三角函数和加权平均计算。基本步骤如下: - 将H转换为0到1的浮点数,S和L也转换为0到1的范围。 - 如果L小于0.5,计算2L作为中间值,否则计算2L-1。 - 使用色相H计算...
代码会根据色相、饱和度和亮度计算出对应的RGB值。 2. RGB to HSL: - 将RGB分量转换为0到1之间的比例值。 - 计算最大值Max和最小值Min,然后求平均值L作为亮度。 - 如果Max和Min相同,那么色相H为0(灰色),饱和度...
本文将详细介绍RGB到HSL以及HSL到RGB的转换过程,并结合MATLAB代码进行解析。 RGB(Red, Green, Blue)颜色空间基于加色混合原理,是我们常用的数字图像表示方式,它由红色、绿色和蓝色三种基本颜色的强度组合而成...
RGB、HSL、Lab和HSV是四种常见的颜色模型,它们各有特点,适用于不同的应用场景。本项目提供了C++实现的颜色模型转换代码,方便在这些模型之间进行转换。 1. RGB(Red, Green, Blue)模型: RGB是最常见的一种颜色...
`.m`文件是MATLAB编程语言的源代码文件,`rgb2hsl.m`和`hsl2rgb.m`很可能是两个函数,分别实现了RGB到HSL和HSL到RGB的转换算法。MATLAB是一种强大的数学计算和可视化工具,常用于科学计算和工程领域,包括图像处理。...
本文件“hsl_rgb.zip”显然是与这两种颜色模型相关的资源,可能包含代码示例、图像或教程,用于帮助理解如何在不同场景下转换和使用HSL和RGB。 首先,我们来详细了解一下HSL颜色模型。HSL全称为Hue(色相)、...
RGB(红绿蓝)和HSL(色调、饱和度、亮度)是两种常见的颜色表示模型。RGB模型基于加色原理,常用于数字图像处理,它通过三种原色(红色、绿色和蓝色)的不同强度组合来表示各种颜色。而HSL模型则更符合人类对颜色的...
void RGB_to_HSL(/*[in]*/const COLOR_RGB* rgb, /*[out]*/COLOR_HSL* hsl); void HSL_to_RGB(const COLOR_HSL* hsl, COLOR_RGB* rgb);
在给定的压缩包文件中,`RGB到HSL颜色空间转换matlab程序代码`应该包含了实现这个转换的MATLAB源代码。通过阅读和理解这段代码,你可以更好地掌握RGB和HSL颜色空间转换的细节,并将其应用于实际项目中。 在处理图像...
在"GRB-HSL空间转换"这个压缩包文件中,可能包含了实现RGB到HSL以及HSL到RGB转换的算法代码或者工具,这对于图形编程、网页设计、图像处理等领域都非常有用。理解并熟练掌握这种颜色转换方法,能帮助开发者更好地...
MATLAB代码,完成RGB空间与HSL空间的相互转换,验证后正反变换应该都没有错误!
在事件处理程序中,我们可以编写代码进行上述的RGB、HSV、HSL和HTML颜色之间的转换,并更新显示结果。 例如,你可能会有一个RGB输入框,用户输入RGB值后,点击“转换”按钮,程序会将RGB转换为HSV和HSL,并在相应的...
从RGB到HSL的转换,通常涉及以下步骤:首先,将RGB值从0-255范围归一化到0-1之间;然后,通过特定公式计算出色相、饱和度和亮度;最后,根据计算结果构建HSL颜色。 而从HSL到CMYK的转换则更为复杂,因为两者的基础...
`RGB空间与HSL空间的相互转换-MATLAB.txt`文件很可能包含了相关的MATLAB代码示例,帮助读者深入理解并实践这两种颜色空间的转换过程。 总结一下,RGB和HSL颜色空间各有特点,MATLAB提供了便捷的转换函数`rgb2hsl`和...
本文为RGB空间转换到HSL空间的matlab代码。
与RGB2HSL相反,它首先会根据色相、饱和度和亮度生成中间变量,然后通过立方体插值或者三角函数运算得到对应的RGB值。 在测试代码`hsltest.m`中,通常会创建一些示例RGB颜色,调用上述转换函数,并显示转换前后的...
本项目是一个C#编写的颜色识别类库,它专注于驱动本地摄像头,实时捕获图像,并能对图像中的RGB、HSV和HSL三种颜色模型进行转换和分析。 首先,RGB(Red, Green, Blue)是基于加性混色原理的颜色模型,广泛应用于...