NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C# 이미지 사이즈를 변경할 때 품질이 떨어지지 않게 유지하는 방법.

    페이지 정보

    본문

    이미지의 크기 또는 각도를 변경하게되면 이미지의 품질이 저하되거나 왜곡이 발생할 수 있습니다. 이미지를 분석할 때 품질이 크게 영향을 주지 않는다면 문제가 되지 않겠지만, 비교 또는 문자 판독과 같은 경우에는 품질 유지가 중요합니다. 품질은 여러가지 옵션이 존재하니 직접 수정해서 사용해도 됩니다.

    /// <summary>
    /// 이미지의 크기를 조정합니다.
    /// </summary>
    /// <param name="image">크기를 조정할 이미지입니다.</param>
    /// <param name="scale">크기를 조정할 비율입니다.</param>
    /// <param name="highQuality">이미지를 최상의 품질로 변환합니다.</param>
    /// <returns></returns>
    public static Image Resize(Image image, int scale, bool highQuality = true)
    {
        if (NSL.ModuleCheck.Invalid)
        {
            image.Dispose();
            return null;
        }
    
        int resizeWidth = (int)(image.Width * (scale / 100f));
        int resizeHeight = (int)(image.Height * (scale / 100f));
    
        var res = new Bitmap(resizeWidth, resizeHeight);
    
        using (var graphic = Graphics.FromImage(res))
        {
            if (highQuality)
            {
                graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
                graphic.SmoothingMode = SmoothingMode.HighQuality;
                graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
                graphic.CompositingQuality = CompositingQuality.HighQuality;
            }
            else
            {
                graphic.InterpolationMode = InterpolationMode.Low;
                graphic.SmoothingMode = SmoothingMode.HighSpeed;
                graphic.PixelOffsetMode = PixelOffsetMode.HighSpeed;
                graphic.CompositingQuality = CompositingQuality.HighSpeed;
            }
            graphic.DrawImage(image, 0, 0, resizeWidth, resizeHeight);
        }
    
        image.Dispose();
        return res;
    }

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.