첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170
using System;
using System.Windows.Media;

#region 색상 구하기 - GetColor(hue, saturation, value)

/// <summary>
/// 색상 구하기
/// </summary>
/// <param name="hue">색상</param>
/// <param name="saturation">채도</param>
/// <param name="value">명도</param>
/// <returns>색상</returns>
public Color GetColor(double hue, double saturation, double value)
{
    double red   = 0;
    double green = 0;
    double blue  = 0;

    if(saturation == 0)
    {
        red   = value;
        green = value;
        blue  = value;
    }
    else
    {
        int i;

        double f;
        double p;
        double q;
        double t;

        if(hue == 360)
        {
            hue = 0;
        }
        else
        {
            hue = hue / 60;
        }

        i = (int)Math.Truncate(hue);

        f = hue - i;

        p = value * (1.0 - saturation);
        q = value * (1.0 - (saturation * f));
        t = value * (1.0 - (saturation * (1.0 - f)));

        switch (i)
        {
            case 0 :

                red   = value;
                green = t;
                blue  = p;

                break;

            case 1 :

                red   = q;
                green = value;
                blue  = p;

                break;

            case 2 :

                red   = p;
                green = value;
                blue  = t;

                break;

            case 3 :

                red   = p;
                green = q;
                blue  = value;

                break;

            case 4 :

                red   = t;
                green = p;
                blue  = value;

                break;

            default :

                red   = value;
                green = p;
                blue  = q;

                break;
        }
    }

    return Color.FromArgb(255, (byte)(red * 255), (byte)(green * 255), (byte)(blue * 255));
}

#endregion
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요