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

■ YCbCr 색상 구조체

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

using System;

 

/// <summary>

/// YCbCr 색상

/// </summary>

public class YCbCr

{

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

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

 

    #region Field

 

    /// <summary>

    /// Y 인덱스

    /// </summary>

    public const short YIndex  = 0;

 

    /// <summary>

    /// Cb 인덱스

    /// </summary>

    public const short CbIndex = 1;

 

    /// <summary>

    /// Cr 인덱스

    /// </summary>

    public const short CrIndex = 2;

 

    /// <summary>

    /// Y

    /// </summary>

    public double Y;

 

    /// <summary>

    /// Cb

    /// </summary>

    public double Cb;

 

    /// <summary>

    /// Cr

    /// </summary>

    public double Cr;

 

    #endregion

 

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

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

 

    #region 생성자 - YCbCr(y, cb, cr)

 

    /// <summary>

    /// 생성자

    /// </summary>

    /// <param name="y">Y 컴포넌트</param>

    /// <param name="cb">Cb 컴포넌트</param>

    /// <param name="cr">Cr 컴포넌트</param>

    public YCbCr(double y, double cb, double cr)

    {

        Y  = Math.Max(0d , Math.Min(1d  , y ));

        Cb = Math.Max(-0d, Math.Min(0.5d, cb));

        Cr = Math.Max(-0d, Math.Min(0.5d, cr));

    }

 

    #endregion

 

    #region 생성자 - YCbCr()

 

    /// <summary>

    /// 생성자

    /// </summary>

    public YCbCr() : this(0d, 0d, 0d)

    {

    }

 

    #endregion

 

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

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

 

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

 

    /// <summary>

    /// 문자열 만들기

    /// </summary>

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

    public override string ToString()

    {

        return string.Format("YCbCr [Y={0}, Cb={1}, Cr={2}]", Y, Cb, Cr);

    }

 

    #endregion

}

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

Posted by 사용자 icodebroker

댓글을 달아 주세요