첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ RGB 색상 구조체

----------------------------------------------------------------------------------------------------

using System;

using System.Drawing;

 

/// <summary>

/// RGB 색상

/// </summary>

public class RGB

{

    //////////////////////////////////////////////////////////////////////////////////////////////////// Field

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region Field

 

    /// <summary>

    /// 빨강색 채널

    /// </summary>

    public const short R = 2;

 

    /// <summary>

    /// 녹색 채널

    /// </summary>

    public const short G = 1;

 

    /// <summary>

    /// 파랑색 채널

    /// </summary>

    public const short B = 0;

 

    /// <summary>

    /// 빨강색

    /// </summary>

    public byte Red;

 

    /// <summary>

    /// 녹색

    /// </summary>

    public byte Green;

 

    /// <summary>

    /// 파랑색

    /// </summary>

    public byte Blue;

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Property

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 색상 - Color

 

    /// <summary>

    /// 색상

    /// </summary>

    public Color Color

    {

        get

        {

            return Color.FromArgb(Red, Green, Blue);

        }

        set

        {

            Red   = value.R;

            Green = value.G;

            Blue  = value.B;

        }

    }

 

    #endregion

 

    #region 회색조 색상 - GrayscaleColor

 

    /// <summary>

    /// 회색조 색상

    /// </summary>

    public Color GrayscaleColor

    {

        get

        {

            int luminance = (int)(0.299d * Red + 0.587d * Green + 0.114d * Blue);

 

            return Color.FromArgb(luminance, luminance, luminance);

        }

    }

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 생성자 - RGB()

 

    /// <summary>

    /// 생성자

    /// </summary>

    public RGB()

    {

    }

 

    #endregion

 

    #region 생성자 - RGB(red, green, blue)

 

    /// <summary>

    /// 생성자

    /// </summary>

    /// <param name="red">빨강색</param>

    /// <param name="green">녹색</param>

    /// <param name="blue">파랑색</param>

    public RGB(byte red, byte green, byte blue)

    {

        Red   = red;

        Green = green;

        Blue  = blue;

    }

 

    #endregion

 

    #region 생성자 - RGB(color)

 

    /// <summary>

    /// 생성자

    /// </summary>

    /// <param name="color">색상</param>

    public RGB(Color color)

    {

        Red   = color.R;

        Green = color.G;

        Blue  = color.B;

    }

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Method

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 문자열 만들기 - ToString()

 

    /// <summary>

    /// 문자열 만들기

    /// </summary>

    /// <returns>문자열</returns>

    public override string ToString()

    {

        return string.Format("RGB [Red={0}, Green={1}, Blue={2}]", Red, Green, Blue);

    }

 

    #endregion

}

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker

댓글을 달아 주세요