728x90
반응형
728x170
#region HSL을 RGB로 변환하기 - HSL2RGB(hsl, rgb)
/// <summary>
/// HSL을 RGB로 변환하기
/// </summary>
/// <param name="hsl">HSL</param>
/// <param name="rgb">RGB</param>
public void HSL2RGB(HSL hsl, RGB rgb)
{
if(hsl.Saturation == 0d)
{
rgb.Red = rgb.Green = rgb.Blue = (byte)(hsl.Luminance * 255d);
}
else
{
double value1;
double value2;
double hue = (double)hsl.Hue / 360d;
value2 = (hsl.Luminance < 0.5d) ? (hsl.Luminance * (1 + hsl.Saturation)) : ((hsl.Luminance + hsl.Saturation) - (hsl.Luminance * hsl.Saturation));
value1 = 2d * hsl.Luminance - value2;
rgb.Red = (byte)(255d * GetValue(value1, value2, hue + (1d / 3d)));
rgb.Green = (byte)(255d * GetValue(value1, value2, hue));
rgb.Blue = (byte)(255d * GetValue(value1, value2, hue - (1d / 3d)));
}
}
#endregion
※ HSL 구조체 : 'HSL 색상 구조체' 참조
※ RGB 구조체 : 'RGB 색상 구조체' 참조
728x90
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] CMY를 CMYK로 변환하기 (0) | 2015.01.26 |
---|---|
[C#/WINFORM] CMY를 RGB로 변환하기 (0) | 2015.01.26 |
[C#/WINFORM] RGB를 CMY로 변환하기 (0) | 2015.01.26 |
[C#/WINFORM] YCbCr을 RGB로 변환하기 (0) | 2015.01.26 |
[C#/WINFORM] RGB를 YCbCr로 변환하기 (0) | 2015.01.26 |
[C#/WINFORM] RGB를 HSL로 변환하기 (0) | 2015.01.26 |
[C#/WINFORM] YCbCr 색상 구조체 (0) | 2015.01.26 |
[C#/WINFORM] RGB 색상 구조체 (0) | 2015.01.26 |
[C#/WINFORM] HSL 색상 구조체 (0) | 2015.01.26 |
[C#/WINFORM] CMYK 색상 구조체 (0) | 2015.01.26 |
댓글을 달아 주세요