`
wesleysong
  • 浏览: 22177 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

HSL转RGB代码

阅读更多
做颜色渐变相关问题的时候,发觉颜色渐变并不是数值大小的渐变…
各种搜索之后,发现有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的黑色图层渐变更直接一些呢。
  • 大小: 34 KB
分享到:
评论

相关推荐

    HSL与RGB相互转换的Demo

    - 示例代码可能包括`HslToRgb`和`RgbToHsl`函数,分别接收HSL和RGB的三个分量作为参数,返回对应的另一种颜色模型的值。 5. **学习价值** - 这个Demo对于理解颜色模型和它们之间的转换非常有帮助,可以帮助开发者...

    Python 转换RGB颜色值的示例代码

    我们知道在网页中的颜色值设置都是用16进制的RGB来表示的,比如#FFFFFF,表示R:255,G:255,B:255的白色。 现在请设计一个函数可以转换RGB的16进制至10进制,或者转换10进制至16进制输出格式。 例: print( ...

    HSL空间转换到RGB空间

    首先,代码读取图像文件,并将图像从RGB空间转换为HSL空间。然后,对每个像素的H、S、L分量进行处理,通过一系列计算将HSL值转化为RGB值。 转换过程中,对于每个像素,代码首先检查饱和度(S)。如果饱和度为0,...

    C# HSL调色板 HSL转RGB

    2. **HSL转RGB算法**: HSL到RGB的转换涉及到三角函数和加权平均计算。基本步骤如下: - 将H转换为0到1的浮点数,S和L也转换为0到1的范围。 - 如果L小于0.5,计算2L作为中间值,否则计算2L-1。 - 使用色相H计算...

    hsl2rgb 与 rgb2hsl matlab源码

    代码会根据色相、饱和度和亮度计算出对应的RGB值。 2. RGB to HSL: - 将RGB分量转换为0到1之间的比例值。 - 计算最大值Max和最小值Min,然后求平均值L作为亮度。 - 如果Max和Min相同,那么色相H为0(灰色),饱和度...

    rgb_hsl转换

    本文将详细介绍RGB到HSL以及HSL到RGB的转换过程,并结合MATLAB代码进行解析。 RGB(Red, Green, Blue)颜色空间基于加色混合原理,是我们常用的数字图像表示方式,它由红色、绿色和蓝色三种基本颜色的强度组合而成...

    颜色模型互转 rgb hsl lab hsv

    RGB、HSL、Lab和HSV是四种常见的颜色模型,它们各有特点,适用于不同的应用场景。本项目提供了C++实现的颜色模型转换代码,方便在这些模型之间进行转换。 1. RGB(Red, Green, Blue)模型: RGB是最常见的一种颜色...

    RGB和HSL色彩空间转换

    `.m`文件是MATLAB编程语言的源代码文件,`rgb2hsl.m`和`hsl2rgb.m`很可能是两个函数,分别实现了RGB到HSL和HSL到RGB的转换算法。MATLAB是一种强大的数学计算和可视化工具,常用于科学计算和工程领域,包括图像处理。...

    hsl_rgb.zip

    本文件“hsl_rgb.zip”显然是与这两种颜色模型相关的资源,可能包含代码示例、图像或教程,用于帮助理解如何在不同场景下转换和使用HSL和RGB。 首先,我们来详细了解一下HSL颜色模型。HSL全称为Hue(色相)、...

    rgb to hsl(rgb到色调,饱和度,亮度的转化,as3代码)

    RGB(红绿蓝)和HSL(色调、饱和度、亮度)是两种常见的颜色表示模型。RGB模型基于加色原理,常用于数字图像处理,它通过三种原色(红色、绿色和蓝色)的不同强度组合来表示各种颜色。而HSL模型则更符合人类对颜色的...

    STM32 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程序代码

    在给定的压缩包文件中,`RGB到HSL颜色空间转换matlab程序代码`应该包含了实现这个转换的MATLAB源代码。通过阅读和理解这段代码,你可以更好地掌握RGB和HSL颜色空间转换的细节,并将其应用于实际项目中。 在处理图像...

    HSL.rar_hsl_rgb hsl

    在"GRB-HSL空间转换"这个压缩包文件中,可能包含了实现RGB到HSL以及HSL到RGB转换的算法代码或者工具,这对于图形编程、网页设计、图像处理等领域都非常有用。理解并熟练掌握这种颜色转换方法,能帮助开发者更好地...

    RGB空间与HSL空间转换

    MATLAB代码,完成RGB空间与HSL空间的相互转换,验证后正反变换应该都没有错误!

    C# RGB与HSV,HSL,HTML颜色相互之前转换

    在事件处理程序中,我们可以编写代码进行上述的RGB、HSV、HSL和HTML颜色之间的转换,并更新显示结果。 例如,你可能会有一个RGB输入框,用户输入RGB值后,点击“转换”按钮,程序会将RGB转换为HSV和HSL,并在相应的...

    HSL.rar_CMYK_HSL RGB_rgb hsl

    从RGB到HSL的转换,通常涉及以下步骤:首先,将RGB值从0-255范围归一化到0-1之间;然后,通过特定公式计算出色相、饱和度和亮度;最后,根据计算结果构建HSL颜色。 而从HSL到CMYK的转换则更为复杂,因为两者的基础...

    RGB空间与HSL空间的相互转换-MATLAB

    `RGB空间与HSL空间的相互转换-MATLAB.txt`文件很可能包含了相关的MATLAB代码示例,帮助读者深入理解并实践这两种颜色空间的转换过程。 总结一下,RGB和HSL颜色空间各有特点,MATLAB提供了便捷的转换函数`rgb2hsl`和...

    RGB空间转换到HSL空间

    本文为RGB空间转换到HSL空间的matlab代码。

    rgb和hsi相互转换的matlab代码

    与RGB2HSL相反,它首先会根据色相、饱和度和亮度生成中间变量,然后通过立方体插值或者三角函数运算得到对应的RGB值。 在测试代码`hsltest.m`中,通常会创建一些示例RGB颜色,调用上述转换函数,并显示转换前后的...

    c#颜色识别类库;驱动本地摄像头,识别得到rgb、hsv、hsl值

    本项目是一个C#编写的颜色识别类库,它专注于驱动本地摄像头,实时捕获图像,并能对图像中的RGB、HSV和HSL三种颜色模型进行转换和分析。 首先,RGB(Red, Green, Blue)是基于加性混色原理的颜色模型,广泛应用于...

Global site tag (gtag.js) - Google Analytics