2010-03-08 7 views
2

저는 C#에서 Winforms Gui를 사용하여 사용자가 tiff 디스플레이에 직사각형을 그리고 위치, 높이, 너비 등을 저장할 수 있도록했습니다. 기본적으로 내가 원하는 것은 저장된 위치, 높이 및 너비입니다. 해당 영역을 잘라내서 잘라내십시오. 비트 맵은 sep로 전달 될 수 있습니다. 메서드를 호출하면 비트 맵의 ​​새 클립 만 OCR됩니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?티파니에서 직사각형을 자르는 방법?

답변

2

Graphics.DrawImage()를 사용하여 원본 이미지의 선택 부분을 복사합니다. 원본 및 대상 Rectangle을 취하는 the overload이 필요합니다. 사각형과 크기가 같은 새 비트 맵에서 Graphics.FromImage()의 Graphics 인스턴스를 만듭니다.

public static Bitmap CropImage(Image source, Rectangle crop) { 
     var bmp = new Bitmap(crop.Width, crop.Height); 
     using (var gr = Graphics.FromImage(bmp)) { 
      gr.DrawImage(source, new Rectangle(0, 0, bmp.Width, bmp.Height), crop, GraphicsUnit.Pixel); 
     } 
     return bmp; 
    } 
+0

원본 이미지의 화면 크기를 조정하는 경우 상대 대비 비율로 자르기 직사각형을 관리해야합니다. –

0

자른 영역의 복사본을 만들려면 Bitmap.Clone()을 사용하십시오.

public Bitmap ClipBitmap(Bitmap src, Rectangle crop) 
{ 
    return src.Clone(crop, src.PixelFormat); 
} 
관련 문제