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

#region 비디오 크기 구하기 - GetVideoSize(mediaPlayer, sourceSize, maximumSize)

/// <summary>
/// 비디오 크기 계산하기
/// </summary>
/// <param name="mediaPlayer">MediaPlayer 객체</param>
/// <param name="sourceSize">소스 크기</param>
/// <param name="maximumSize">최대 크기</param>
/// <returns>비디오 크기</returns>
/// <remarks>비디오 크기는 Double형 Size 타입이나 픽셀 값이다</remarks>
public Size GetVideoSize(MediaPlayer mediaPlayer, Size maximumSize)
{
    Size videoSize = new Size();

    if(mediaPlayer.NaturalVideoWidth > mediaPlayer.NaturalVideoHeight)
    {
        double videoRatio = (double)mediaPlayer.NaturalVideoHeight / mediaPlayer.NaturalVideoWidth;

        videoSize.Width  = Math.Min(maximumSize.Width, mediaPlayer.NaturalVideoWidth);
        videoSize.Height = videoSize.Width * videoRatio;
    }
    else
    {
        double videoRatio = (double)mediaPlayer.NaturalVideoWidth / mediaPlayer.NaturalVideoHeight;

        videoSize.Height = Math.Min(maximumSize.Height, mediaPlayer.NaturalVideoHeight);
        videoSize.Width  = videoSize.Height * videoRatio;
    }

    return videoSize;
}

#endregion
#region 비디오 크기 구하기 - GetVideoSize(mediaPlayer, sourceSize, maximumWidth, maximumHeight)

/// <summary>
/// 비디오 크기 구하기
/// </summary>
/// <param name="mediaPlayer">MediaPlayer 객체</param>
/// <param name="sourceSize">소스 크기</param>
/// <param name="maximumWidth">최대 너비</param>
/// <param name="maximumHeight">최대 높이</param>
/// <returns>비디오 크기</returns>
/// <remarks>비디오 크기는 Double형 Size 타입이나 픽셀 값이다</remarks>
public Size GetVideoSize(MediaPlayer mediaPlayer, double maximumWidth, double maximumHeight)
{
    return GetVideoSize(mediaPlayer, new Size(maximumWidth, maximumHeight));
}

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

댓글을 달아 주세요