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

■ FrameworkElement 클래스 : 이미지 저장하기

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

using System.IO;

using System.Windows;

using System.Windows.Media;

using System.Windows.Media.Imaging;

 

#region 이미지 저장하기 - SaveImage(element, filePath)

 

/// <summary>

/// 이미지 저장하기

/// </summary>

/// <param name="element">프레임워크 엘리먼트</param>

/// <param name="filePath">파일 경로</param>

public void SaveImage(FrameworkElement element, string filePath)

{

    Rect elementRectangle = VisualTreeHelper.GetDescendantBounds(element);

 

    DrawingVisual visual = new DrawingVisual();

 

    using(DrawingContext context = visual.RenderOpen())

    {

        VisualBrush brush = new VisualBrush(element);

 

        context.DrawRectangle(brush, null, new Rect(elementRectangle.Size));

    }

 

    int width  = (int)element.ActualWidth;

    int height = (int)element.ActualHeight;

 

    RenderTargetBitmap bitmap = new RenderTargetBitmap

    (

        width,

        height,

        96,

        96,

        PixelFormats.Pbgra32

    );

 

    bitmap.Render(visual);

 

    PngBitmapEncoder encoder = new PngBitmapEncoder();

 

    encoder.Frames.Add(BitmapFrame.Create(bitmap));

 

    using(FileStream stream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None))

    {

        encoder.Save(stream);

    }

}

 

#endregion

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

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요