IronOCR 방법 시스템.드로잉 객체 C#에서 System.Drawing 객체의 데이터를 읽는 방법 커티스 차우 업데이트됨:2월 11, 2026 다운로드 IronOCR NuGet 다운로드 DLL 다운로드 윈도우 설치 프로그램 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 This article was translated from English: Does it need improvement? Translated View the article in English IronOCR는 Windows, macOS 및 Linux 플랫폼 전반의 .NET 애플리케이션에 매끄러운 OCR 기능을 제공하기 위해 System.Drawing와 같은 객체에서 텍스트를 읽을 수 있게 하고, OcrImageInput에 포장하여 처리합니다. System.Drawing.Bitmap는 .NET Framework에서 비트맵 이미지를 다루기 위해 사용되는 클래스입니다. 이 라이브러리는 비트맵 이미지를 생성, 조작 및 표시하는 메서드와 속성을 제공합니다. System.Drawing.Image는 .NET Framework의 모든 GDI+ 이미지 객체의 기본 클래스입니다. 이것은 System.Drawing.Bitmap을 포함한 다양한 이미지 유형에 대한 상위 클래스입니다. IronDrawing의 비트맵 클래스인 IronSoftware.Drawing.AnyBitmap는 원래 Iron Software에 의해 개발된 오픈소스 라이브러리입니다. 이를 통해 C# 소프트웨어 엔지니어들이 Windows, macOS, Linux 플랫폼에서 .NET 프로젝트에서 System.Drawing.Common를 대체할 수 있습니다. 빠른 시작: System.Drawing.Bitmap에서 텍스트 읽기 단일 문장으로 IronTesseract를 생성하고, OcrImageInput로 감싸진 System.Drawing.Bitmap를 제공하여 모든 텍스트를 추출할 수 있습니다. 이 빠른 시작 예제는 IronOCR이 최소한의 설정만으로 이미지를 읽기 쉬운 텍스트로 변환하는 방법을 보여줍니다. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronOcr 설치하기 PM > Install-Package IronOcr 다음 코드 조각을 복사하여 실행하세요. var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrImageInput(new System.Drawing.Bitmap("image.png"))); 실제 운영 환경에서 테스트할 수 있도록 배포하세요. 무료 체험판으로 오늘 프로젝트에서 IronOCR 사용 시작하기 Free 30 Day Trial ## C#에서 System.Drawing 객체의 데이터를 읽는 방법 System.Drawing 객체를 읽기 위한 C# 라이브러리를 다운로드하세요. Obtain System.Drawing objects such as `Bitmap` and `Image` Construct the `OcrImageInput` class using the acquired data Utilize `AnyBitmap` from Iron Software for Linux and macOS 작물 영역을 지정하여 읽기 영역을 정의하십시오. System.Drawing.Bitmap에서 어떻게 읽어오나요? 먼저, OCR을 수행하기 위해 IronTesseract 클래스의 인스턴스를 만듭니다. 여러 방법 중 한 가지 방법으로 System.Drawing.Bitmap를 생성합니다. 이 코드 예제에서는 파일 경로가 사용됩니다. 그다음, 이미지에서 System.Drawing.Bitmap 객체를 OcrImageInput 객체에 전달하여 using 구문을 사용하여 생성합니다. 마지막으로, OCR을 수행하기 위해 Read 메서드를 사용합니다. :path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-bitmap.cs using IronOcr; using System.Drawing; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Read image file to Bitmap Bitmap bitmap = new Bitmap("Potter.tiff"); // Import System.Drawing.Bitmap using var imageInput = new OcrImageInput(bitmap); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); $vbLabelText $csharpLabel OcrImageInput에서 using 문이 중요한 이유는 무엇입니까? using 구문은 OcrImageInput 작업에서 기초적이며 적절한 자원 관리와 메모리 청소를 보장합니다. OcrImageInput는 IDisposable를 구현하여, 이는 비관리 자원을 보유하게 되어 객체 사용 종료 시 해제할 필요가 있습니다. using 구문 없이, 이러한 자원은 즉시 해제되지 않을 수 있어, 메모리 누수나 파일 잠금을 초래할 수 있습니다. 이는 특히 여러 이미지를 일괄 처리할 때 중요합니다. IronOCR에서 적절한 리소스 관리 방법에 대한 자세한 내용은 API 참조 문서를 확인하세요. 일반적인 비트맵 로딩 방법에는 어떤 것들이 있나요? System.Drawing.Bitmap는 우리의 예시에서 사용된 파일 경로 생성자 외에도 여러 로딩 방법을 제공합니다. 스트림(new Bitmap(stream))에서, 기존 new Bitmap(image))에서, 또는 특정 크기의 빈 비트맵(new Bitmap(width, height))을 생성할 수 있습니다. 웹 애플리케이션 개발 시, 스트림을 이용한 로딩은 업로드된 파일을 처리하는 데 특히 유용합니다. 내장 자원용으로 Assembly.GetManifestResourceStream()을 사용할 수 있습니다. IronOCR는 OcrImageInput 생성자를 통해 이러한 모든 Bitmap 소스를 매끄럽게 다룹니다. 이미지(jpg, png, gif, tiff, bmp) 가이드에서 다양한 입력 방식에 대해 자세히 알아보세요. Bitmap 객체는 언제 해제해야 하나요? 비트맵 폐기 시점은 애플리케이션의 워크플로에 따라 달라집니다. OCR을 위한 Bitmap만 필요하다면, OcrImageInput를 생성한 후 즉시 폐기합니다. 하지만 여러 작업을 수행하거나 이미지를 표시해야 하는 경우에는 모든 작업이 완료될 때까지 이미지를 계속 활성화 상태로 유지해야 합니다. 항상 using 구문이나 try-finally 블록을 사용해 폐기를 보장해야 합니다. OcrImageInput는 자체 내부 복사를 생성하므로, OcrImageInput 생성 후 원본 Bitmap는 폐기될 수 있습니다. 여러 이미지 작업을 포함하는 복잡한 시나리오의 경우, OCR 이미지 최적화 필터 예제를 참조하십시오. System.Drawing.Image에서 어떻게 읽어오나요? System.Drawing.Image에서 읽는 것은 OcrImageInput 객체를 Image와 함께 생성한 다음 Read 메서드를 사용하여 표준 OCR 프로세스를 수행하는 것만큼 간단합니다. :path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-image.cs using IronOcr; using Image = System.Drawing.Image; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Open image file as Image Image image = Image.FromFile("Potter.tiff"); // Import System.Drawing.Image using var imageInput = new OcrImageInput(image); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); $vbLabelText $csharpLabel OCR에서 이미지와 비트맵의 차이점은 무엇인가요? System.Drawing.Bitmap는 비트맵 이미지 전용 구현이지만, System.Drawing.Image는 JPEG, PNG, GIF 및 TIFF를 포함한 다양한 이미지 형식을 나타낼 수 있는 추상 기본 클래스입니다. OCR 목적을 위해, IronOCR는 OcrImageInput를 통해 둘 다 동일하게 처리하지만, Image는 다양한 형식 작업 시 더 많은 유연성을 제공합니다. Bitmap는 픽셀 수준 조작 기능을 제공하는 반면, Image는 일반 이미지 처리에 더 적합합니다. 두 프로그램 모두 IronOCR의 고급 Tesseract 5 엔진과 완벽하게 호환됩니다. 선택은 OCR 성능보다는 전반적인 애플리케이션 요구 사항에 따라 달라집니다. 다른 로딩 방식 대신 Image.FromFile을 사용하는 이유는 무엇인가요? Image.FromFile는 디스크에서 이미지를 로드하기 위한 가장 쉽고 직접적인 방법입니다. 이미지 형식을 자동으로 감지하고 파일 읽기 프로세스를 처리합니다. Image.FromStream와 같은 다른 방법은 웹 애플리케이션 또는 메모리 스트림 작업 시 더 좋습니다. Image.FromFile는 Image가 폐기될 때까지 파일을 잠급니다. 이는 멀티스레드 애플리케이션에서 고려 사항일 수 있습니다. 고성능 또는 동시 접근이 필요한 프로덕션 환경에서는 이미지를 먼저 메모리 스트림에 로드하는 것을 고려하십시오. 멀티스레드 Tesseract OCR 예제는 동시 이미지 처리를 위한 최적의 방법을 보여줍니다. IronSoftware.Drawing.AnyBitmap에서 어떻게 읽어오나요? 마찬가지로 AnyBitmap 객체를 생성하거나 획득한 후, OcrImageInput 클래스를 구성할 수 있습니다. 생성자는 데이터를 가져오는 데 필요한 모든 단계를 처리합니다. 아래 코드 예제는 이를 보여줍니다. :path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-anybitmap.cs using IronOcr; using IronSoftware.Drawing; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Open image file as AnyBitmap AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff"); // Import IronSoftware.Drawing.AnyBitmap using var imageInput = new OcrImageInput(anyBitmap); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); $vbLabelText $csharpLabel System.Drawing 클래스 대신 AnyBitmap을 선택해야 하는 이유는 무엇일까요? AnyBitmap는 System.Drawing 클래스에 비해 우수한 플랫폼 간 호환성을 제공합니다. System.Drawing.Common는 .NET 6+에서 비 Windows 플랫폼에 대한 제한적 지원을 가지고 있는 반면, AnyBitmap는 Windows, Linux 및 macOS 전반에 매끄럽게 작동합니다. 이 라이브러리는 플랫폼별 종속성 없이 일관된 API를 제공하므로 클라우드 배포 및 컨테이너화된 애플리케이션에 이상적입니다. AnyBitmap는 이미지 처리 작업을 위해 특별히 설계된 더 나은 메모리 관리 및 성능 최적화를 제공합니다. 자세한 호환성 정보는 호환성 문서를 참조하십시오. AnyBitmap은 어떤 플랫폼을 지원하나요? AnyBitmap는 .NET 실행 가능한 모든 주요 플랫폼을 지원합니다: Windows (x86, x64, ARM), Linux (Docker를 위한 Alpine Linux 포함), 및 macOS (Intel과 Apple Silicon 모두). 이처럼 폭넓은 플랫폼 지원 덕분에 다양한 환경에서 실행되어야 하는 최신 .NET 애플리케이션에 권장되는 선택지가 되었습니다. 특히 AWS Lambda 또는 Azure Functions와 같은 클라우드 환경에 배포할 때 유용합니다. Linux , macOS 및 Docker 환경에 대한 가이드를 참조하여 플랫폼별 설정에 대해 자세히 알아보세요. AnyBitmap은 메모리 관리를 어떻게 처리하나요? AnyBitmap는 자동 가비지 수집 통합 및 명시적 폐기 패턴을 통한 효율적인 메모리 관리를 구현합니다. 이 시스템은 자주 할당되는 버퍼에 대해 메모리 풀링을 사용하고, 성능 향상을 위해 쓰기 시 복사(copy-on-write) 방식을 구현합니다. 파일 잠금을 유지할 수 있는 System.Drawing.Bitmap와는 달리, AnyBitmap는 이미지를 메모리에 완전히 로드하여 파일 접근 문제를 방지합니다. 또한 높은 처리량 시나리오에서 메모리 사용량을 더 효과적으로 제어할 수 있습니다. 대량의 이미지를 처리하는 애플리케이션의 경우, AnyBitmap의 메모리 효율성은 전반적인 메모리 사용량을 상당히 줄일 수 있습니다. 마이그레이션 팁은 System.Drawing.Common Alternatives 가이드를 참조하세요. 스캔 영역을 어떻게 지정할 수 있나요? OcrImageInput 클래스의 생성에서 스캔할 영역을 지정할 수 있습니다. 이 기능을 사용하면 이미지 문서에서 OCR을 수행할 특정 영역을 지정할 수 있습니다. 이미지 문서의 종류에 따라 스캔 영역을 지정하면 성능이 크게 향상될 수 있습니다. 제공된 코드 예제에서는 장 번호와 제목만 추출됩니다. :path=/static-assets/ocr/content-code-examples/how-to/input-images-read-specific-region.cs using IronOcr; using IronSoftware.Drawing; using System; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Specify crop region Rectangle scanRegion = new Rectangle(800, 200, 900, 400); // Add image using var imageInput = new OcrImageInput("Potter.tiff", ContentArea: scanRegion); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); // Output the result to console Console.WriteLine(ocrResult.Text); $vbLabelText $csharpLabel 성능 향상을 위해 영역 스캔을 사용해야 하는 경우는 언제인가요? 영역 스캔은 일관된 문서 레이아웃에서 특정 영역의 텍스트만 필요한 경우 성능을 크게 향상시킵니다. 일반적인 사용 사례로는 헤더, 양식 필드, 송장 합계 또는 신분증 정보 추출 등이 있습니다. 성능 향상은 텍스트가 차지하는 면적이 작은 대형 이미지에서 가장 두드러집니다. 3000x4000 픽셀 크기의 청구서에서 총액 부분만 스캔하는 것이 전체 페이지 OCR보다 10~20배 빠를 수 있습니다. 영역 스캔은 다른 영역에서 발생하는 잠재적인 노이즈를 제거하여 정확도를 향상시킵니다. 지역별 사례를 더 자세히 보려면 PDF 파일이 포함된 콘텐츠 영역 및 작물 재배 지역 가이드를 참조하세요. 내 지역의 정확한 좌표를 어떻게 확인할 수 있나요? 좌표를 결정하려면 Rectangle가 (X, Y, Width, Height) 형식을 사용하며, (0,0)은 좌상단 모서리임을 이해해야 합니다. 먼저 커서 좌표를 표시하는 이미지 편집기에서 이미지를 엽니다. 또는 IronOCR의 디버깅 기능을 사용하여 감지된 텍스트 영역을 시각화할 수 있습니다. 동적 레이아웃의 경우 처음에 IronOCR를 사용하여 전체 스캔을 수행한 후, OcrResult를 분석하여 텍스트 위치를 프로그래밍 방식으로 찾는 것을 고려하세요. 디버깅을 위한 텍스트 강조 표시 예시는 정확한 좌표 결정을 위해 OCR 영역을 시각화하는 방법을 보여줍니다. 영역이 이미지 경계를 벗어나면 어떻게 될까요? 지정된 영역이 이미지 경계를 벗어나면 IronOCR은 자동으로 해당 영역을 유효한 이미지 영역으로 잘라냅니다. 예를 들어 이미지 크기가 1000x1000픽셀이고 (900, 900, 200, 200)에 사각형을 지정하면 IronOCR은 (900, 900)부터 (1000, 1000)까지의 영역만 처리합니다. 이 자동 클리핑 기능은 오류를 방지하지만, 좌표가 정확하지 않으면 텍스트 추출이 불완전해질 수 있습니다. 영역을 실제 이미지 크기와 비교하여 항상 검증하십시오. 이미지 크기가 가변적인 경우, 고정된 픽셀 단위가 아닌 백분율로 영역을 계산하십시오. 이미지의 OCR 영역 가이드에서는 안전한 영역 처리 방법에 대한 더 많은 예시를 제공합니다. OCR 결과 자주 묻는 질문 C#에서 OCR을 사용하여 System.Drawing.Bitmap에서 텍스트를 추출하는 방법은 무엇인가요? IronOCR을 사용하면 System.Drawing.Bitmap 객체에서 텍스트를 간단하게 추출할 수 있습니다. 먼저 IronTesseract 클래스를 인스턴스화한 다음, using 문을 사용하여 Bitmap 객체를 OcrImageInput 객체로 감싸고 마지막으로 Read 메서드를 호출합니다. 최소한의 코드는 다음과 같습니다. var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrImageInput(bitmap)); OcrImageInput을 사용할 때 using 문이 중요한 이유는 무엇입니까? `using` 문은 `OcrImageInput` 클래스가 `IDisposable` 인터페이스를 구현하고 적절한 정리가 필요한 관리되지 않는 리소스를 보유하기 때문에 매우 중요합니다. `using` 문이 없으면 특히 여러 이미지를 처리할 때 메모리 누수나 파일 잠금이 발생할 위험이 있습니다. IronOCR의 `OcrImageInput` 클래스는 .NET 애플리케이션에서 효율적인 리소스 관리를 위해 적절한 리소스 해제가 필수적입니다. System.Drawing.Image 객체에 대해 OCR을 수행할 수 있습니까? 네, IronOCR은 System.Drawing.Image 객체에 대한 OCR을 지원합니다. Image는 Bitmap의 기본 클래스이기 때문입니다. Bitmap과 마찬가지로 Image 객체를 OcrImageInput으로 감싸기만 하면 IronOCR이 Windows, macOS, Linux 플랫폼에서 원활하게 텍스트를 추출합니다. IronSoftware.Drawing.AnyBitmap은 무엇이며 OCR과 어떤 관련이 있습니까? IronSoftware.Drawing.AnyBitmap은 .NET 프로젝트에서 System.Drawing.Common을 대체하는 데 도움이 되는 오픈 소스 라이브러리인 IronDrawing의 비트맵 클래스입니다. Windows, macOS 및 Linux에서 크로스 플랫폼 호환성을 제공하므로 다양한 운영 체제에서 일관된 이미지 처리가 필요한 IronOCR과 함께 사용하기에 적합합니다. 이미지에서 특정 영역을 지정하여 텍스트를 추출할 수 있나요? 예, IronOCR은 자르기 영역을 지정하여 특정 읽기 영역을 정의할 수 있도록 합니다. 이 기능을 사용하면 시스템 드로잉 객체의 특정 부분에 OCR 처리를 집중할 수 있으므로 이미지의 특정 부분에서만 텍스트를 추출해야 할 때 성능과 정확도를 향상시킬 수 있습니다. 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다. 커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다. 검토자: 제프리 T. 프리츠 .NET 커뮤니티 팀의 수석 프로그램 관리자 제프는 .NET 및 Visual Studio 팀의 수석 프로그램 관리자이기도 합니다. 그는 .NET Conf 가상 컨퍼런스 시리즈의 총괄 프로듀서이며, 개발자를 위한 라이브 스트림 'Fritz and Friends'를 주 2회 진행하며 시청자들과 함께 기술에 대해 이야기하고 코드를 작성합니다. 제프는 Microsoft Build, Microsoft Ignite, .NET Conf, Microsoft MVP Summit 등 주요 Microsoft 개발자 행사를 위한 워크숍, 프레젠테이션 및 콘텐츠 기획을 담당합니다. 시작할 준비 되셨나요? Nuget 다운로드 5,525,971 | 버전: 2026.3 방금 출시되었습니다 무료 체험 시작하기 NuGet 무료 다운로드 총 다운로드 수: 5,525,971 라이선스 보기 아직도 스크롤하고 계신가요? 빠른 증거를 원하시나요? PM > Install-Package IronOcr 샘플을 실행하세요 이미지가 검색 가능한 텍스트로 바뀌는 것을 확인해 보세요. NuGet 무료 다운로드 총 다운로드 수: 5,525,971 라이선스 보기