Wie man System Drawing Images für die OCR-Verarbeitung in C# verwendet

How to Read from System.Drawing Objects

This article was translated from English: Does it need improvement?
Translated
View the article in English

System.Drawing.Bitmap ist eine Klasse im .NET Framework, die für die Arbeit mit Bitmap-Bildern verwendet wird. Sie bietet Methoden und Eigenschaften zum Erstellen, Bearbeiten und Anzeigen von Bitmap-Bildern.

System.Drawing.Image ist eine Basisklasse für alle GDI+-Bildobjekte im .NET Framework. Sie ist die übergeordnete Klasse für verschiedene Bildtypen, einschließlich System.Drawing.Bitmap.

IronSoftware.Drawing.AnyBitmap ist eine Bitmap-Klasse in IronDrawing, einer Open-Source-Bibliothek, die ursprünglich von Iron Software entwickelt wurde. Sie hilft C#-Softwareentwicklern, System.Drawing.Common in .NET-Projekten auf Windows-, macOS- und Linux-Plattformen zu ersetzen.

als-Überschrift:2(Schnellstart: Text aus einer System.Drawing.Bitmap lesen)

In nur einer einfachen Anweisung erstellen Sie ein IronTesseract und übergeben ihm eine System.Drawing.Bitmap, die von OcrImageInput umhüllt ist, um den gesamten Text zu extrahieren. Dieses Schnellstart-Beispiel zeigt, wie mühelos IronOCR Ihr Bild in lesbaren Text mit minimalem Setup umwandelt.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrImageInput(new System.Drawing.Bitmap("image.png")));
  3. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Minimaler Arbeitsablauf (5 Schritte)

  1. Laden Sie eine C#-Bibliothek zum Lesen von System.Drawing-Objekten herunter
  2. Erhalten Sie System.Drawing-Objekte wie Bitmap und Image
  3. Konstruktion der OcrImageInput-Klasse mit den gewonnenen Daten
  4. Verwenden Sie AnyBitmap von Iron Software für Linux und macOS
  5. Definieren Sie den Lesebereich durch Angabe der Zuschnittregion


Beispiel für das Lesen einer System.Drawing.Bitmap

Zuerst instanziieren Sie die IronTesseract-Klasse, um OCR durchzuführen. Erstellen Sie eine System.Drawing.Bitmap aus einer der verschiedenen Methoden. Im Codebeispiel habe ich mich entschieden, einen Dateipfad zu verwenden.

Verwenden Sie anschließend die using-Anweisung, um das OcrImageInput-Objekt zu erstellen und das Bild aus dem System.Drawing.Bitmap-Objekt hineinzureichen. Verwenden Sie schließlich die Read-Methode, um OCR durchzuführen.

: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);
Imports IronOcr
Imports System.Drawing

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Read image file to Bitmap
Private bitmap As New Bitmap("Potter.tiff")

' Import System.Drawing.Bitmap
Private imageInput = New OcrImageInput(bitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

Beispiel für das Lesen einer System.Drawing.Image

Das Lesen aus einer System.Drawing.Image ist so einfach wie das Erstellen des OcrImageInput-Objekts mit dem Bild und dann das Durchführen des Standard-OCR-Prozesses mit der Read-Methode.

: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);
Imports IronOcr
Imports Image = System.Drawing.Image

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Open image file as Image
Private image As Image = Image.FromFile("Potter.tiff")

' Import System.Drawing.Image
Private imageInput = New OcrImageInput(image)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

Beispiel für das Lesen eines IronSoftware.Drawing.AnyBitmap

Ähnlich können Sie nach dem Erstellen oder Erhalten eines AnyBitmap-Objekts die OcrImageInput-Klasse konstruieren. Der Konstruktor kümmert sich um alle notwendigen Schritte zum Import der Daten. Das folgende Codebeispiel demonstriert dies.

: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);
Imports IronOcr
Imports IronSoftware.Drawing

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Open image file as AnyBitmap
Private anyBitmap As AnyBitmap = AnyBitmap.FromFile("Potter.tiff")

' Import IronSoftware.Drawing.AnyBitmap
Private imageInput = New OcrImageInput(anyBitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

Scanbereich angeben

Beim Erstellen der OcrImageInput-Klasse können Sie den Bereich zum Scannen angeben. Dies ermöglicht es Ihnen, den spezifischen Bereich des Bilddokuments für OCR zu definieren. Je nach Bilddokument kann die Angabe des Scanbereichs die Leistung erheblich verbessern. Im bereitgestellten Codebeispiel gebe ich an, dass nur die Kapitelnummer und der Titel extrahiert werden sollen.

: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);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Specify crop region
Private scanRegion As New Rectangle(800, 200, 900, 400)

' Add image
Private imageInput = New OcrImageInput("Potter.tiff", ContentArea:= scanRegion)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Output the result to console
Console.WriteLine(ocrResult.Text)
$vbLabelText   $csharpLabel

OCR-Ergebnis

class="content-img-align-center">
class="center-image-wrapper"> Speziellen Bereich lesen

Häufig gestellte Fragen

Wie kann ich Text aus einem Bitmap-Bild in C# extrahieren?

Sie können IronOCR verwenden, indem Sie zuerst eine Instanz der Klasse IronTesseract erstellen. Erstellen Sie dann eine System.Drawing.Bitmap und übergeben Sie sie an ein OcrImageInput-Objekt. Verwenden Sie schließlich die Read-Methode, um Text zu extrahieren.

Welche Schritte sind beim Lesen von System.Drawing-Objekten für OCR-Aufgaben erforderlich?

Um mit IronOCR von System.Drawing-Objekten zu lesen, laden Sie die Bibliothek herunter, erwerben Sie System.Drawing-Objekte, konstruieren Sie die Klasse OcrImageInput und definieren Sie bei Bedarf einen Zuschneidebereich. Verwenden Sie AnyBitmap für plattformübergreifende Kompatibilität auf Linux und macOS.

Wie führt man OCR auf einem System.Drawing.Image durch?

Um OCR auf einem System.Drawing.Image durchzuführen, erstellen Sie ein OcrImageInput-Objekt mit dem Bild und führen Sie die Read-Methode in IronOCR aus.

Was ist der Vorteil der Verwendung von AnyBitmap in plattformübergreifenden Projekten?

IronSoftware.Drawing.AnyBitmap ermöglicht es Entwicklern, System.Drawing.Common durch eine plattformübergreifende Lösung zu ersetzen, die OCR-Funktionalität auf Windows, macOS und Linux ermöglicht.

Wie können Scanregionen die OCR-Leistung verbessern?

Durch die Definition spezifischer Scanregionen in der Klasse OcrImageInput können Sie sich bei der OCR auf relevante Bereiche konzentrieren, was die Leistung und Genauigkeit erheblich verbessern kann.

Ist IronOCR kompatibel mit Linux und macOS?

Ja, IronOCR ist mit Linux und macOS kompatibel, wenn IronSoftware.Drawing.AnyBitmap verwendet wird, und bietet eine plattformübergreifende Lösung für OCR-Aufgaben.

Wie geben Sie einen Bereich an, der in einem Bild für OCR gescannt werden soll?

In IronOCR geben Sie eine Scanregion an, indem Sie Koordinaten und Abmessungen in der Klasse OcrImageInput festlegen, was die OCR-Leistung durch Fokussierung auf relevante Bildabschnitte verbessert.

Welche Klassen sind unerlässlich für die Bildbearbeitung in .NET-OCR-Projekten?

In .NET-OCR-Projekten sind Klassen wie System.Drawing.Bitmap, System.Drawing.Image und IronSoftware.Drawing.AnyBitmap unerlässlich für die Bildbearbeitung.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 5,044,537 | Version: 2025.11 gerade veröffentlicht