3) ImageCapture 클래스

ImageCapture 클래스는 화면의 사각 영역을 인자로 받아 화면 영역을 캡쳐하여 Bitmap 개체를 생성하여 반환하는 기능만 제공합니다. 이러한 이유로 정적 클래스로 만들 것입니다. 특히 UI 자동화 기술에서는 Windows.dll에 정의하고 있는 Rect 형식을 사용하여 어셈블리를 참조해야 합니다. 그리고 접근성 평가 도우미는 Windows Forms 응용 프로그램이므로 Rectangle 형식을 인자로 받는 메서드도 제공합시다.

public static class ImageCapture
{

먼저 Rectangle 형식을 인자로 받는 메서드를 구현합시다.

    public static Bitmap CaptureFormRect(Rectangle rect)
    {

입력 인자로 받은 사각 영역의 폭과 높이를 인자로 Bitmap 개체를 생성합니다.

        Bitmap bitmap = new Bitmap(rect.Width, rect.Height);

비트맵 이미지를 인자로 Graphics 클래스이 정적 메서드 FromImage 메서드를 호출하여 비트맵 이미지를 그릴 수 있는 Graphics 개체를 생성합니다.

        Graphics graphics = Graphics.FromImage(bitmap);

화면을 비트맵에 복사할 때 복사할 비트맵의 좌표를 0,0 으로 할 것입니다.

        Point point = new Point(0, 0);

Graphics 개체의 CopyFromScreen 메서드를 호출하여 화면의 사각 영역을 비트맵 개체로 복사합니다. 그리고 이미지를 저장한 후에 생성한 Bitmap 개체를 반환합니다.

        graphics.CopyFromScreen(rect.Location, point, bitmap.Size);
        graphics.Save();
        return bitmap;
    }

Rect 형식을 받는 메서드를 제공합니다.

    public static Bitmap CaptureFormRect(System.Windows.Rect wrect)
    {
        Rectangle rect = new Rectangle((int)wrect.Left, (int)wrect.Top,
                                      (int)wrect.Width, (int)wrect.Height);
        return CaptureFormRect(rect);
    }
}
using System.Drawing;
using System;
namespace 접근성_평가_도우미
{
    public static class ImageCapture
    { 
        public static Bitmap CaptureFormRect(Rectangle rect)
        {            
            Bitmap bitmap = new Bitmap(rect.Width, rect.Height);
            Graphics graphics = Graphics.FromImage(bitmap);
            Point point = new Point(0, 0);
            graphics.CopyFromScreen(rect.Location, point, bitmap.Size);
            graphics.Save();
            return bitmap;
        }
        public static Bitmap CaptureFormRect(System.Windows.Rect wrect)
        {
            Rectangle rect = new Rectangle((int)wrect.Left, (int)wrect.Top, 
                                          (int)wrect.Width, (int)wrect.Height);
            return CaptureFormRect(rect);
        }
    }
}

[소스 10.3] ImageCapture.cs