'capture'에 해당되는 글 1건

  1. 2008.06.28 전체화면 캡쳐 및 저장 6


이번 포스팅에서는 현재 윈도우의 전체화면을 캡쳐하는 방법과 캡쳐된 화면을 파일로 저장하는 방법을 설명한다.

우선 아래 그림은 데모프로그램을 이용해서 화면을 캡쳐하고 Picturebox 컨트롤을 이용해서 캡쳐된 화면을 출력해준 것이다.

캡쳐화면 예시



다음은 화면을 캡쳐하고 저장하는 주요 소스이다.

// Capture
int width = Screen.PrimaryScreen.Bounds.Width;
int height = Screen.PrimaryScreen.Bounds.Height;

Size size = new Size(width, height);
bitmap = new Bitmap(width, height);
Graphics g = Graphics.FromImage(bitmap);
g.CopyFromScreen(0, 0, 0, 0, size);

// Save
bitmap.Save("FileName.jpg", System.Drawing.ImageFormat.Jpeg);

위의 소스를 간단히 설명하면 다음과 같다.

우선 화면을 캡쳐하는 것부터 설명하면, 이 예제는 전체화면을 캡쳐하는 것이기에 우선 현재 윈도우의 해상도를 얻어와야 한다. 해상도를 얻는 방법은 "Screen.PrimaryScreen.Bounds"에 있는 Width, Height 속성을 통해서 간단히 얻을 수 있다.
(해상도 얻는 방법은 이전 글 참조...(클릭))

다음으로 얻어온 해상도를 이용해서 해당 크기만큼 Size, Bitmap 객체를 생성하고, Graphics 객체를 생성한다.

마지막으로 Graphics 객체의 CopyFromScreen() 메소드를 이용하면 bitmap 객체에 현재 윈도우의 화면이 그대로 캡쳐되서 저장이된다. 저장된 bitmap 객체를 이용해서 Picturebox 컨트롤을 이용해 화면에 표시를 해주거나 Save() 메소드를 이용하면 파일로 저장이 가능하다.

이제 캡쳐된 화면을 파일로 저장하는 부분을 설명하면, 단순히 Bitmap 객체의 Save() 메소드를 사용하는데, 소스를 보면 알수 있듯이 별다른 설명이 필요 없을 정도로 직관적이다.

Save() 메소드는 위의 예제와 달리 2번째 매개변수인 파일형식을 적어주지 않고 매개변수로 파일명 하나만 적어줘도 파일로 저장이 가능하다.

Source: https://github.com/gungume/BlogSamples/tree/master/ScreenCaputre
(사용언어 / 제작툴 / .Net Framework버전 : C# / VS2008 / 3.5)

※ C#을 이용한 화면캡쳐와 관련해서는 데브피아 C#마을 강좌&팁 게시판에 있는 윤성민님의 "C#에 대한 낙서 13 (캡쳐 프로그램제작 3) (클릭)"를 참고했다.


Posted by Gungume
,