Wie man Eingabebilder für die OCR-Verarbeitung in C# verwendet

Bilder lesen in C#35; mit IronOCR

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

IronOCR extrahiert Text aus Bildern in den Formaten JPG, PNG, GIF, TIFF und BMP mit Hilfe optischer Zeichenerkennungstechnologie. Die grundlegende Textextraktion erfordert nur eine Zeile Code nach der Installation des NuGet-Pakets.

Die OCR-Technologie (Optical Character Recognition) erkennt und extrahiert Text aus Bildern. Es digitalisiert gedruckte Dokumente, indem es Textinhalte aus gescannten Seiten, Fotos oder anderen Bilddateien extrahiert. IronOCR verwendet fortschrittliche Algorithmen des maschinellen Lernens von Tesseract 5 in Kombination mit einer proprietären Bildvorverarbeitung für eine branchenführende Genauigkeit.

Die Bibliothek unterstützt die Formate jpg, png, gif, tiff, und bmp. Bildfilter verbessern die Lesefähigkeit durch automatische Korrektur gängiger Qualitätsprobleme. IronOCR kombiniert Tesseract 5 mit fortschrittlicher Vorverarbeitung, um genaue Ergebnisse für verschiedene Bildqualitäten und -formate zu liefern, von hochauflösenden Scans bis zu komprimierten Webbildern.

als-Überschrift:2(Schnellstart: Eine Bilddatei mit IronOCR lesen)

Extrahieren von Text aus einem Bild mit einer Zeile Code. Dieses Beispiel lädt ein Bild und liest seinen Text mit der Methode Read von IronTesseract. Die Bibliothek übernimmt automatisch die Vorverarbeitung von Bildern und die Textextraktion.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var result = new IronTesseract().Read(new OcrImageInput("Potter.png"));
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer


Wie lese ich Bilder mit IronOCR?

Beginnen Sie mit der Instanziierung der IronTesseract Klasse. Verwenden Sie die 'using'-Anweisung, um ein OcrImageInput-Objekt mit dem Pfad der Bilddatei zu erstellen. Dies gewährleistet eine angemessene Ressourcenverwendung. IronOCR unterstützt die Formate jpg, png, gif, tiff und bmp. Führen Sie OCR mit der Methode Lesen aus. Die Bibliothek erkennt automatisch das Bildformat und führt eine entsprechende Vorverarbeitung durch.

Für neue Benutzer gibt es die Installationsanleitung für Windows oder NuGet-Paketoptionen. Für die plattformübergreifende Entwicklung siehe Linux-Einrichtung oder macOS-Installation.

[{i:( Ab Version 2025.6:

  • Das Laden von TIFF-Bildern liefert jetzt konsistent schnellere Leistung.
  • Das Lesen von TIFF-Bildern zeigt Leistungsverbesserungen, die von der GPU des Computers abhängen. Einige Benutzer können eine bis zu doppelt so hohe Geschwindigkeit erleben, während andere eine ähnliche Leistung wie bei früheren Versionen sehen @@--KLAMMER-SCHLIESSEN--@@
/* :path=/static-assets/ocr/content-code-examples/how-to/input-images-read.cs */
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("Potter.png");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Display the extracted text
Console.WriteLine(ocrResult.Text);

// Get confidence level
double confidence = ocrResult.Confidence;
Console.WriteLine($"Confidence: {confidence}%");
/* :path=/static-assets/ocr/content-code-examples/how-to/input-images-read.cs */
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("Potter.png");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Display the extracted text
Console.WriteLine(ocrResult.Text);

// Get confidence level
double confidence = ocrResult.Confidence;
Console.WriteLine($"Confidence: {confidence}%");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
IronOCR Textextraktionsdemo: Harry Potter-Seitenbild im Code-Editor in Klartext umgewandelt

Besuchen Sie How to Read Multi-Frame/Page GIFs and TIFFs für das Lesen von TIFF und GIF Bildern. Für mehrere Seiten siehe das Multipage TIFF processing example.

Warum ist der Vertrauensgrad wichtig?

Die Vertrauensstufe gibt an, wie sicher IronOCR die Genauigkeit des extrahierten Textes einschätzt. Werte über 85 % weisen im Allgemeinen auf zuverlässige Ergebnisse hin. Niedrigere Punktzahlen können eine Bildvorverarbeitung oder eine manuelle Überprüfung erfordern. Verwenden Sie Konfidenzwerte, um Dokumente automatisch für die menschliche Überprüfung zu kennzeichnen oder zusätzliche Bildoptimierungsfilter auszulösen.

Wann sollte ich verschiedene Bildformate verwenden?

Die Formate PNG und TIFF liefern aufgrund der verlustfreien Komprimierung die besten OCR-Ergebnisse. Verwenden Sie PNG für einseitige Dokumente und TIFF für mehrseitige Scans. JPEG eignet sich gut für Fotos, kann aber zu Kompressionsartefakten führen. BMP bietet unkomprimierte Qualität, aber größere Dateigrößen. GIF eignet sich für einfache Grafiken mit begrenzten Farben. Erfahren Sie mehr über formatspezifische Optimierung.

Was sind häufige Fehler beim Lesen von Bildern?

Zu den häufigsten Fehlern gehören eine niedrige Bildauflösung (unter 200 DPI), schiefer Text, schlechter Kontrast oder nicht unterstützte Sprachen. IronOCR bietet für viele Probleme eine automatische Korrektur, aber schwerwiegende Probleme können eine manuelle Vorverarbeitung erfordern. In unserem Leitfaden zur Fehlerbehebung finden Sie Lösungen.

Wie kann ich Bilder als Bytes importieren?

Die Klasse OcrImageInput akzeptiert Bilder als Dateipfade, Bytes, AnyBitmap, Stream- oder Image-Objekte. AnyBitmap ist ein Bitmap-Objekt aus IronSoftware.Drawing.AnyBitmap. Diese Flexibilität ermöglicht eine nahtlose Integration mit verschiedenen Datenquellen wie Datenbanken, Web-APIs und Cloud-Speicher.

Diese Flexibilität hilft bei der Arbeit mit Bildern aus Datenbanken, Webdiensten oder Memory-Streams. Für fortgeschrittene Stream-Verarbeitung siehe OCR mit Input-Streams. Der System.Drawing-Integrationsleitfaden bietet zusätzliche Beispiele für die Kompatibilität von Legacy-Code.

:path=/static-assets/ocr/content-code-examples/how-to/input-images-import-byte.cs
using IronOcr;
using System.IO;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Read byte from file
byte[] data = File.ReadAllBytes("Potter.tiff");

// Import image byte
using var imageInput = new OcrImageInput(data);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports System.IO

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Read byte from file
Private data() As Byte = File.ReadAllBytes("Potter.tiff")

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

Wann sollte ich Byte-Arrays anstelle von Dateipfaden verwenden?

Byte-Arrays funktionieren am besten, wenn die Bilder aus Datenbanken, Webdiensten oder verschlüsselten Quellen stammen. Sie bieten mehr Sicherheit, da die Dateien nicht auf der Festplatte zwischengespeichert werden müssen. Verwenden Sie Byte-Arrays für Cloud-Anwendungen, Microservices oder bei der Verarbeitung sensibler Dokumente. Dateipfade bleiben für die lokale Stapelverarbeitung großer Bildsammlungen effizienter.

using IronOcr;
using IronSoftware.Drawing;
using System.IO;

// Method 1: From URL
var imageFromUrl = AnyBitmap.FromUri("https://example.com/document.jpg");
using var urlInput = new OcrImageInput(imageFromUrl);

// Method 2: From Stream
using var fileStream = File.OpenRead("document.png");
using var streamInput = new OcrImageInput(fileStream);

// Method 3: From System.Drawing (with IronSoftware.Drawing)
var bitmap = AnyBitmap.FromFile("scan.bmp");
using var bitmapInput = new OcrImageInput(bitmap);

// Process any of these inputs
IronTesseract ocr = new IronTesseract();
OcrResult result = ocr.Read(bitmapInput);
using IronOcr;
using IronSoftware.Drawing;
using System.IO;

// Method 1: From URL
var imageFromUrl = AnyBitmap.FromUri("https://example.com/document.jpg");
using var urlInput = new OcrImageInput(imageFromUrl);

// Method 2: From Stream
using var fileStream = File.OpenRead("document.png");
using var streamInput = new OcrImageInput(fileStream);

// Method 3: From System.Drawing (with IronSoftware.Drawing)
var bitmap = AnyBitmap.FromFile("scan.bmp");
using var bitmapInput = new OcrImageInput(bitmap);

// Process any of these inputs
IronTesseract ocr = new IronTesseract();
OcrResult result = ocr.Read(bitmapInput);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Warum ist die Speicherverwaltung für Bildbytes wichtig?

Große Bilder verbrauchen viel Speicherplatz, insbesondere wenn mehrere Dokumente gleichzeitig verarbeitet werden. Durch die Verwendung von "using"-Anweisungen wird eine ordnungsgemäße Ressourcenverwendung sichergestellt. Für die Stapelverarbeitung ist die Implementierung eines Warteschlangensystems mit begrenzten gleichzeitigen Operationen zu erwägen. Der Multithreading-Leitfaden demonstriert effiziente Speicherverwaltungstechniken.

Welche Auswirkungen haben die verschiedenen Eingabearten auf die Leistung?

Dateipfade bieten die schnellste Leistung für lokale Dateien, da IronOCR die Daten direkt liest. Byte-Arrays erfordern das Laden ganzer Bilder in den Speicher, bieten aber Flexibilität. Streams sorgen durch inkrementelles Lesen von Daten für ein Gleichgewicht zwischen Speichernutzung und Leistung. Für optimale Leistung bei großen Stapeln siehe unseren Leitfaden zur Leistungsoptimierung.

Wie lege ich eine Scan-Region fest?

Übergeben Sie bei der Instanziierung von OcrImageInput ein CropRectangle, um anzugeben, welcher Bildbereich verarbeitet werden soll. Die Begrenzung des Scanbereichs verbessert die Leistung erheblich. Im folgenden Beispiel sind nur die Kapitelnummer und der Titel zu lesen. Mit dieser Technik lässt sich die Bearbeitungszeit um bis zu 90 % reduzieren, wenn man sich auf bestimmte Dokumentbereiche konzentriert.

Für komplexe Layouts oder mehrere Regionen, siehe OCR Region of an Image. Das Handbuch für Inhaltsbereiche erklärt fortgeschrittene Techniken zur Auswahl von Bereichen.

: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

Warum verbessert die Angabe von Regionen die Leistung?

Die Verarbeitung nur relevanter Bildbereiche reduziert den Rechenaufwand um 60-90 %. OCR-Engines analysieren jedes Pixel im Eingabebereich, sodass kleinere Regionen eine schnellere Verarbeitung bedeuten. Dieser Ansatz verbessert auch die Genauigkeit, indem er mögliche Störungen durch Kopf- und Fußzeilen oder dekorative Elemente außerhalb des Zieltextbereichs eliminiert.

OCR-Scanbereich-Demo mit roten Rechtecken, die den Titel von Kapitel 8 sowohl im Quellbild als auch in der Debug-Ausgabe hervorheben

Wann sollte ich mehrere Scanbereiche verwenden?

Verwenden Sie mehrere Regionen für Dokumente mit unterschiedlichen Textbereichen wie Formulare, Rechnungen oder mehrspaltige Layouts. Bearbeiten Sie jede Region separat, um einen logischen Textfluss zu gewährleisten. Dieser Ansatz eignet sich gut für das Extrahieren von Tabellendaten oder das Lesen bestimmter Felder aus strukturierten Dokumenten.

Was sind die Konventionen des Koordinatensystems?

IronOCR verwendet Standard-Pixelkoordinaten mit dem Ursprung (0,0) in der linken oberen Ecke. X steigt nach rechts, Y steigt nach unten. Die Parameter des Rechtecks sind (X, Y, Breite, Höhe). Zur präzisen Auswahl von Regionen verwenden Sie Bildbearbeitungswerkzeuge, um Pixelkoordinaten zu identifizieren, oder implementieren Sie einen visuellen Regionsselektor in Ihrer Anwendung.

Wie kann ich erweiterte Bildverarbeitung anwenden?

IronOCR bietet umfassende Bildvorverarbeitungsfunktionen zur Verbesserung der OCR-Genauigkeit. Wenden Sie Filter an, wenn Sie es mit Bildern von schlechter Qualität, gescannten Dokumenten oder schwierigen Bedingungen zu tun haben. Der Filter-Assistent hilft bei der Ermittlung der optimalen Filterkombinationen für Ihre spezifischen Bilder.

using IronOcr;

IronTesseract ocr = new IronTesseract();

using var input = new OcrImageInput("low-quality-scan.jpg");

// Apply image enhancement filters
input.Deskew();  // Correct image rotation
input.DeNoise(); // Remove background noise
input.Binarize(); // Convert to black and white
input.EnhanceResolution(300); // Adjust DPI for better accuracy

// Configure for better accuracy
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
ocr.Configuration.Language = OcrLanguage.English;

OcrResult result = ocr.Read(input);
using IronOcr;

IronTesseract ocr = new IronTesseract();

using var input = new OcrImageInput("low-quality-scan.jpg");

// Apply image enhancement filters
input.Deskew();  // Correct image rotation
input.DeNoise(); // Remove background noise
input.Binarize(); // Convert to black and white
input.EnhanceResolution(300); // Adjust DPI for better accuracy

// Configure for better accuracy
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
ocr.Configuration.Language = OcrLanguage.English;

OcrResult result = ocr.Read(input);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Erfahren Sie mehr über Bildoptimierungsfilter und Fixing low quality scans. Bei Bedarf an Farbkorrekturen siehe den Leitfaden zur Farbkorrektur von Bildern.

Wann sollte ich Bildvorverarbeitungsfilter anwenden?

Wenden Sie Filter an, wenn es sich um gescannte Dokumente, Fotos von Text oder Bilder mit Qualitätsproblemen handelt. Zu den üblichen Szenarien gehören das Korrigieren von schiefen Seiten, das Entfernen von Hintergrundgeräuschen aus Fotokopien oder das Verbessern von verblasstem Text. Der DPI-Einstellungsleitfaden hilft bei der Optimierung auflösungsbezogener Probleme.

Warum ist die Reihenfolge der Filter wichtig?

Die Filterreihenfolge hat einen großen Einfluss auf die Ergebnisse. Wenden Sie zuerst die Rotationskorrektur (Deskew) an, gefolgt von der Rauschentfernung, dann die Kontrastverbesserung. Die Binarisierung sollte in der Regel an letzter Stelle stehen. Eine falsche Reihenfolge kann Probleme verstärken - zum Beispiel erhöht die Schärfung vor der Entrauschung die Sichtbarkeit von Rauschen. Testen Sie verschiedene Sequenzen für optimale Ergebnisse.

Was sind häufige Fehler beim Preprocessing?

Überarbeitung ist der häufigste Fehler. Eine übermäßige Schärfung erzeugt Artefakte, eine aggressive Entrauschung entfernt feine Textdetails, und durch ungeeignete Binarisierungsschwellen gehen Informationen verloren. Beginnen Sie mit einer minimalen Vorverarbeitung und fügen Sie nur bei Bedarf Filter hinzu. Der Leitfaden zur Korrektur der Bildqualität bietet detaillierte Best Practices.

Wie kann ich die Leistung optimieren?

Berücksichtigen Sie diese Optimierungen bei der Verarbeitung mehrerer Bilder oder großer Stapel:

  1. Wiederverwendung der IronTesseract Instanz: Eine Instanz für mehrere Operationen erstellen
  2. Bestimmen Sie die Scanbereiche: Beschränken Sie die OCR auf relevante Bildbereiche für 60-90% Gewinn
  3. Geeignete Bildformate verwenden: PNG und TIFF liefern bessere Ergebnisse als JPEG
  4. Preprocessing selektiv anwenden: Filter nur bei Bedarf verwenden
  5. Parallele Verarbeitung einführen: Nutzen Sie Multi-Core-CPUs für Stapelverarbeitungsvorgänge

Für Hochleistungsszenarien siehe Multithreading-Leitfaden und fast OCR configuration. Die Funktion zur Fortschrittsverfolgung hilft bei der Überwachung lang laufender Vorgänge.

Warum verbessert die Wiederverwendung von Instanzen die Leistung?

die IronTesseract-Initialisierung lädt die Sprachdaten und konfiguriert die OCR-Engine, was 200-500ms dauert. Durch die Wiederverwendung von Instanzen wird dieser Overhead für nachfolgende Operationen eliminiert. Erstellen Sie eine Einzelinstanz für Webanwendungen oder eine gemeinsame Instanz für die Stapelverarbeitung, um die Effizienz zu maximieren.

Wann sollte ich Parallelverarbeitung verwenden?

Die Parallelverarbeitung kommt Szenarien mit mehreren unabhängigen Bildern zugute. Verarbeiten Sie verschiedene Seiten oder Dokumente gleichzeitig, aber vermeiden Sie die Parallelisierung von Operationen auf demselben Bild. Moderne CPUs können 4-8 gleichzeitige OCR-Operationen effektiv verarbeiten. Überwachen Sie die Speichernutzung, da jeder Vorgang je nach Bildgröße 100-500 MB erfordert.

Was ist bei der Speichernutzung zu beachten?

OCR-Operationen erfordern in der Regel das 10-20fache der Bilddateigröße im RAM. Ein 5 MB großes Bild kann bei der Verarbeitung 50-100 MB verbrauchen. Implementieren Sie bei großen Stapeln ein Producer-Consumer-Muster mit begrenzten gleichzeitigen Operationen. Das abort token example demonstriert das Abbrechen von speicherintensiven Operationen.

Was sind die nächsten Schritte?

Mit diesen Ressourcen können Sie Text aus komplexeren Szenarien extrahieren:

Häufig gestellte Fragen

Welche Bildformate können für die Textextraktion in C# gelesen werden?

IronOCR unterstützt das Lesen von Text aus den Bildformaten JPG, PNG, GIF, TIFF und BMP. Die Bibliothek erkennt automatisch das Bildformat und wendet eine entsprechende Vorverarbeitung an, um optimale Ergebnisse bei der Textextraktion zu erzielen.

Wie extrahiere ich Text aus einer Bilddatei in einer einzigen Code-Zeile?

Mit IronOCR können Sie Text mit einer einzigen Zeile extrahieren: `var result = new IronTesseract().Read(new OcrImageInput("image.png"));`. Dies übernimmt automatisch die Bildvorverarbeitung und die Textextraktion mit der Tesseract 5 OCR-Technologie.

Welche OCR-Technologie wird zum Lesen von Bildern verwendet?

IronOCR kombiniert die fortschrittlichen Algorithmen für maschinelles Lernen von Tesseract 5 mit einer proprietären Bildvorverarbeitung. Diese Kombination liefert eine branchenführende Genauigkeit bei unterschiedlichen Bildqualitäten und -formaten, von hochauflösenden Scans bis hin zu komprimierten Webbildern.

Wie gehe ich beim Lesen von Bildern richtig mit Ressourcen um?

Verwenden Sie bei der Erstellung eines OcrImageInput-Objekts die 'using'-Anweisung, um eine ordnungsgemäße Ressourcenverwendung sicherzustellen. Dieses Muster verwaltet automatisch Speicher und Dateihandles: `using var ocrInput = new OcrImageInput("image.jpg");`

Kann ich bestimmte Bereiche eines Bildes anstelle der gesamten Datei lesen?

Ja, IronOCR ermöglicht die Festlegung von Zuschneidebereichen, um bestimmte Lesebereiche innerhalb eines Bildes zu definieren. Diese Funktion hilft dabei, die OCR-Verarbeitung auf relevante Teile des Bildes zu konzentrieren, um die Leistung und Genauigkeit zu verbessern.

Welche Vorverarbeitung wird automatisch auf Bilder angewendet?

IronOCR wendet automatisch Bildfilter an, die die Lesefähigkeit durch Korrektur gängiger Qualitätsprobleme verbessern. Die Bibliothek übernimmt die Formaterkennung und Vorverarbeitung, ohne dass eine manuelle Konfiguration für grundlegende Anwendungsfälle erforderlich ist.

Gibt es Leistungsverbesserungen bei der Verarbeitung von TIFF-Bildern?

Ab IronOCR Version 2025.6 ist das Laden von TIFF-Bildern durchgehend schneller. Das Lesen von TIFF-Bildern zeigt Verbesserungen, die von der GPU des Rechners abhängen, wobei einige Benutzer eine bis zu doppelt so hohe Geschwindigkeit wie bei früheren Versionen erreichen.

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,246,844 | Version: 2025.12 gerade veröffentlicht