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

#region 복사하기 - Copy(sourceBitmap, squareSize)

/// <summary>
/// 복사하기
/// </summary>
/// <param name="sourceBitmap">소스 비트맵</param>
/// <param name="squareSize">정사각형 크기</param>
/// <returns>비트맵</returns>
public Bitmap Copy(Bitmap sourceBitmap, int squareSize)
{
    float ratio = 1.0f;

    int maximumSide = sourceBitmap.Width > sourceBitmap.Height ? sourceBitmap.Width : sourceBitmap.Height;

    ratio = (float)maximumSide / (float)squareSize;

    Bitmap targetBitmap;
            
    if(sourceBitmap.Width > sourceBitmap.Height)
    {
        targetBitmap = new Bitmap(squareSize, (int)(sourceBitmap.Height / ratio));
    }
    else
    {
        targetBitmap = new Bitmap((int)(sourceBitmap.Width / ratio), squareSize);
    }

    using(Graphics targetGraphics = Graphics.FromImage(targetBitmap))
    {
        targetGraphics.CompositingQuality = CompositingQuality.HighQuality;
        targetGraphics.InterpolationMode  = InterpolationMode.HighQualityBicubic;
        targetGraphics.PixelOffsetMode    = PixelOffsetMode.HighQuality;

        targetGraphics.DrawImage
        (
            sourceBitmap,
            new Rectangle(0, 0, targetBitmap.Width, targetBitmap.Height),
            new Rectangle(0, 0, sourceBitmap.Width, sourceBitmap.Height),
            GraphicsUnit.Pixel
        );

        targetGraphics.Flush();
    }

    return targetBitmap;
}

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

댓글을 달아 주세요