Jak odczytywać zrzuty ekranu za pomocą IronOCR w języku C#
Metoda ReadScreenshot IronOCR wydajnie wyodrębnia tekst z zrzutów ekranu, obsługując różne wymiary i wyzwania związane z szumem, wspierając powszechne formaty plików, w tym PNG, JPG i BMP.
Zrzuty ekranu to szybki sposób na udostępnianie informacji i przechwytywanie kluczowych danych. Jednak wyodrębnianie tekstu ze zrzutów ekranu okazało się trudne ze względu na różne wymiary i zakłócenia. To sprawia, że zrzuty ekranu są trudnym medium dla OCR.
IronOCR rozwiązuje ten problem, zapewniając wyspecjalizowane metody takie jak ReadScreenshot. Metoda ta jest zoptymalizowana pod kątem odczytywania zrzutów ekranu i wyodrębniania z nich informacji, obsługując jednocześnie popularne formaty plików. W przeciwieństwie do standardowych metod OCR, ta metoda stosuje specyficzne optymalizacje przetwarzania wstępnego dostosowane do treści zrzutów ekranu, w tym automatyczną redukcję szumów i poprawę kontrastu.
Aby użyć tej funkcji, zainstaluj pakiet [IronOcr.Extension.AdvancedScan]. To rozszerzenie zapewnia zaawansowane funkcje przetwarzania obrazu, które zwiększają dokładność rozpoznawania tekstu na zrzutach ekranu, szczególnie w przypadku elementów interfejsu użytkownika, czcionek systemowych i tekstu z wygładzaniem krawędzi w nowoczesnych aplikacjach.
Rozpocznij w sekundach, używając ReadScreenshot IronOCR—załaduj swój zrzut ekranu do OcrInput, wywołaj ReadScreenShot i natychmiast uzyskaj dostęp do wyodrębnionego tekstu, poziomu zaufania i regionów tekstowych poprzez OcrPhotoResult. To najszybszy sposób na przekształcenie obrazów w tekst, który można wykorzystać, przy minimalnej konfiguracji.
-
1Install IronOCR with NuGet Package Manager
-
2Skopiuj i uruchom ten fragment kodu.
OcrPhotoResult result = new IronTesseract().ReadScreenShot(new OcrInput().LoadImage("screenshot.png"));C# -
3Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
W niniejszym przewodniku pokazano, jak używać IronOCR do rozpoznawania tekstu na zrzutach ekranu, omawiając przykłady i właściwości obiektu wynikowego. Zbadamy zaawansowane scenariusze, takie jak przetwarzanie określonych regionów, obsługa treści wielojęzycznych oraz optymalizacja wydajności przetwarzania wsadowego.
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# do odczytu zrzutów ekranu
- Zaimportuj zrzuty ekranu do przetworzenia
- Użyj metody
ReadScreenshot,aby wyodrębnić tekst z obrazu - Pobierz wyodrębnione dane za pomocą właściwości OcrPhotoResult w celu dalszego przetwarzania
- Zapisz lub wyeksportuj wyodrębniony tekst w razie potrzeby
Jak wyodrębnić tekst ze zrzutów ekranu przy użyciu ReadScreenshot?
Aby odczytać zrzut ekranu w IronOCR, wykorzystaj metodę ReadScreenshot, która przyjmuje OcrInput jako parametr. Ta metoda jest bardziej zoptymalizowana dla zrzutów ekranu niż standardowy odpowiednik Read biblioteki. Optymalizacja obejmuje automatyczne wykrywanie elementów interfejsu użytkownika, lepszą obsługę czcionek z wygładzaniem krawędzi oraz ulepszone rozpoznawanie czcionek systemowych w różnych systemach operacyjnych.
- Metoda ta działa obecnie w przypadku języków takich jak angielski, chiński, japoński, koreański oraz alfabetów opartych na alfabecie łacińskim.
- Korzystanie z zaawansowanego skanowania w środowisku .NET Framework wymaga, aby projekt działał na architekturze x64.
)]
Jakie rodzaje zrzutów ekranu sprawdzają się najlepiej?
Poniżej znajduje się nasz wkład dotyczący przykładu kodu; Demonstrujemy wszechstronność tej metody, łącząc różne czcionki i rozmiary tekstu. Metoda ReadScreenshot wyróżnia się w rozpoznawaniu:
- Czcionki interfejsu użytkownika systemu (Windows, macOS, Linux)
- Tekst z wygładzaniem krawędzi z nowoczesnych aplikacji
- Mieszane rozmiary i style czcionek
- Tekst nałożony na złożone tło
- Wyniki konsoli i zrzuty ekranu terminala
- Treści przeglądarki z różnymi czcionkami internetowymi
Aby uzyskać optymalne wyniki, należy wykonać zrzuty ekranu w natywnej rozdzielczości bez kompresji. Metoda obsługuje różne formaty obrazów, ale format PNG najlepiej zachowuje czytelność tekstu dzięki bezstratnej kompresji.

Jak zaimplementować metodę ReadScreenshot?
using IronOcr;
using System;
using System.Linq;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputScreenshot = new OcrInput();
inputScreenshot.LoadImage("screenshotOCR.png");
// Perform OCR
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);
// Output screenshot information
Console.WriteLine(result.Text);
Console.WriteLine(result.TextRegions.First().Region.X);
Console.WriteLine(result.TextRegions.Last().Region.Width);
Console.WriteLine(result.Confidence);Imports IronOcr
Imports System
Imports System.Linq
' Instantiate OCR engine
Dim ocr = New IronTesseract()
Using inputScreenshot = New OcrInput()
inputScreenshot.LoadImage("screenshotOCR.png")
' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot)
' Output screenshot information
Console.WriteLine(result.Text)
Console.WriteLine(result.TextRegions.First().Region.X)
Console.WriteLine(result.TextRegions.Last().Region.Width)
Console.WriteLine(result.Confidence)
End UsingW przypadku złożonych scenariuszy należy usprawnić proces odczytu zrzutów ekranu poprzez dodatkowe przetwarzanie wstępne:
using IronOcr;
using System;
// Configure OCR engine with specific settings for screenshots
var ocr = new IronTesseract()
{
// Set language for better accuracy with non-English content
Language = OcrLanguage.English,
// Configure for screen-resolution images
Configuration = new TesseractConfiguration()
{
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
// Enable whitelist for specific characters if needed
WhiteListCharacters = null
}
};
using var inputScreenshot = new OcrInput();
// Load screenshot with specific DPI setting for consistency
inputScreenshot.LoadImage("screenshotOCR.png");
// Apply preprocessing for better accuracy
inputScreenshot.DeNoise(); // Remove screenshot artifacts
inputScreenshot.Sharpen(); // Enhance text edges
// Perform OCR with error handling
try
{
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);
// Process results with confidence threshold
if (result.Confidence > 0.8)
{
Console.WriteLine($"High confidence text extraction: {result.Text}");
}
else
{
Console.WriteLine("Low confidence - consider image preprocessing");
}
}
catch (Exception ex)
{
Console.WriteLine($"OCR Error: {ex.Message}");
}
Jakie właściwości zwraca OcrPhotoResult?

Wynik wyświetlany w konsoli pokazuje wyodrębnienie wszystkich fragmentów tekstu ze zrzutu ekranu. Przyjrzyjmy się właściwościom OcrPhotoResult i jak skutecznie je wykorzystać:
Text: Wyodrębniony tekst z wejścia OCR. Ta właściwość zawiera cały rozpoznany tekst jako pojedynczy ciąg znaków, zachowując oryginalny układ z podziałami na linie i odstępami.Confidence: Właściwość podwójna wskazująca statystyczną dokładność na skali od 0 do 1, gdzie 1 oznacza najwyższą dokładność. Wykorzystaj to do wdrożenia kontroli jakości w swojej aplikacji.TextRegion: Tablica obiektówTextRegionzawierających właściwości zwracające obszary, w których znaleziono tekst na zrzucie ekranu. Domyślnie, wszystkieTextRegionstanowią pochodne klasyRectanglez modeli IronOCR. Zawiera współrzędnexiyorazheightiwidthprostokąta.
Praca z TextRegions pozwala na:
- Wyodrębnianie tekstu z określonych obszarów zrzutów ekranu
- Zidentyfikuj lokalizacje elementów interfejsu użytkownika
- Tworzenie klikalnych nakładek na podstawie pozycji tekstu
- Wdrożenie przetwarzania OCR dostosowanego do regionu
Oto przykład przetwarzania poszczególnych fragmentów tekstu:
using IronOcr;
using System;
using System.Linq;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("screenshot.png");
OcrPhotoResult result = ocr.ReadScreenShot(input);
// Process each text region individually
foreach (var region in result.TextRegions)
{
Console.WriteLine($"Text: {region.TextInRegion}");
Console.WriteLine($"Location: X={region.Region.X}, Y={region.Region.Y}");
Console.WriteLine($"Size: {region.Region.Width}x{region.Region.Height}");
Console.WriteLine($"Confidence: {region.RegionConf:P2}");
Console.WriteLine("---");
}
// Find specific UI elements by text content
var buttonRegion = result.TextRegions
.FirstOrDefault(r => r.TextInRegion.Contains("Submit", StringComparison.OrdinalIgnoreCase));
if (buttonRegion != null)
{
Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}");
}
Zaawansowane techniki przetwarzania zrzutów ekranu
Obsługa wielojęzycznych zrzutów ekranu
W przypadku pracy ze zrzutami ekranu zawierającymi wiele języków, IronOCR zapewnia solidną obsługę wielojęzyczną. Jest to przydatne w przypadku aplikacji międzynarodowych lub zrzutów ekranu z wielojęzycznych interfejsów użytkownika:
using IronOcr;
// Configure for multiple languages
var ocr = new IronTesseract();
ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified);
ocr.AddSecondaryLanguage(OcrLanguage.Japanese);
using var input = new OcrInput();
input.LoadImage("multilingual-screenshot.png");
// Process with language detection
OcrPhotoResult result = ocr.ReadScreenShot(input);
Console.WriteLine($"Extracted multilingual text: {result.Text}");Imports IronOcr
' Configure for multiple languages
Dim ocr As New IronTesseract()
ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified)
ocr.AddSecondaryLanguage(OcrLanguage.Japanese)
Using input As New OcrInput()
input.LoadImage("multilingual-screenshot.png")
' Process with language detection
Dim result As OcrPhotoResult = ocr.ReadScreenShot(input)
Console.WriteLine($"Extracted multilingual text: {result.Text}")
End UsingOptymalizacja wydajności przetwarzania wsadowego
Podczas przetwarzania wielu zrzutów ekranu należy zastosować następujące strategie optymalizacji:
using IronOcr;
using System.Collections.Generic;
using System.Threading.Tasks;
public async Task ProcessScreenshotBatchAsync(List<string> screenshotPaths)
{
var ocr = new IronTesseract();
// Process screenshots in parallel for better performance
var tasks = screenshotPaths.Select(async path =>
{
using var input = new OcrInput();
input.LoadImage(path);
// Apply consistent preprocessing
input.DeNoise();
var result = await Task.Run(() => ocr.ReadScreenShot(input));
return new { Path = path, Result = result };
});
var results = await Task.WhenAll(tasks);
// Process results
foreach (var item in results)
{
Console.WriteLine($"File: {item.Path}");
Console.WriteLine($"Text: {item.Result.Text}");
Console.WriteLine($"Confidence: {item.Result.Confidence:P2}");
}
}Imports IronOcr
Imports System.Collections.Generic
Imports System.Threading.Tasks
Public Async Function ProcessScreenshotBatchAsync(screenshotPaths As List(Of String)) As Task
Dim ocr = New IronTesseract()
' Process screenshots in parallel for better performance
Dim tasks = screenshotPaths.Select(Async Function(path)
Using input = New OcrInput()
input.LoadImage(path)
' Apply consistent preprocessing
input.DeNoise()
Dim result = Await Task.Run(Function() ocr.ReadScreenShot(input))
Return New With {Key .Path = path, Key .Result = result}
End Using
End Function)
Dim results = Await Task.WhenAll(tasks)
' Process results
For Each item In results
Console.WriteLine($"File: {item.Path}")
Console.WriteLine($"Text: {item.Result.Text}")
Console.WriteLine($"Confidence: {item.Result.Confidence:P2}")
Next
End FunctionNajlepsze praktyki dotyczące OCR zrzutów ekranu
- Jakość przechwytywania: Rób zrzuty ekranu w natywnej rozdzielczości bez skalowania
- Wybór formatu: Używaj formatu PNG, aby zachować bezstratną jakość
- Przetwarzanie wstępne: Zastosuj odpowiednie filtry na podstawie zawartości zrzutu ekranu
- Progi zaufania: Implementuj walidację opartą na zaufaniu dla krytycznych aplikacji
- Śledzenie postępów: W przypadku długotrwałych operacji należy wdrożyć śledzenie postępów
Typowe przypadki użycia
Metoda ReadScreenshot jest idealna dla:
- Automatycznych testów i weryfikacji UI
- Systemów zarządzania zasobami cyfrowymi
- Narzędzi wsparcia klientów do przechwytywania komunikatów błędów
- Automatyzacji dokumentacji
- Narzędzi dostępności dla czytników ekranowych
- Aplikacje do gier i streamingu
Integracja z funkcjami IronOCR
Funkcja odczytu zrzutów ekranu płynnie integruje się z innymi funkcjami IronOCR. Zapoznaj się z kompleksowymi funkcjami przetwarzania wyników OCR, aby eksportować dane w różnych formatach, lub zagłęb się w zaawansowaną konfigurację Tesseract w celu precyzyjnego dostrojenia dokładności rozpoznawania.
Podsumowanie
Metoda ReadScreenshot IronOCR oferuje potężne, zoptymalizowane rozwiązanie do wyodrębniania tekstu ze zrzutów ekranu. Dzięki specjalistycznemu przetwarzaniu wstępnemu, wysokiej dokładności i kompleksowym danym wynikowym umożliwia programistom tworzenie solidnych aplikacji, które niezawodnie przetwarzają zawartość zrzutów ekranu. Niezależnie od budowania narzędzi do automatyzacji, rozwiązań dostępności czy systemów ekstrakcji danych, metoda ReadScreenshot oferuje wydajność i dokładność potrzebne w środowiskach produkcyjnych.
Często Zadawane Pytania
Dlaczego wyodrębnianie OCR ze zrzutów ekranu jest wyzwaniem?
Zrzuty ekranu stwarzają unikalne wyzwania dla OCR ze względu na różne wymiary i poziomy szumów. IronOCR rozwiązuje te problemy dzięki specjalistycznej metodzie ReadScreenshot, która automatycznie redukuje szumy i zwiększa kontrast, optymalizując szczególnie pod kątem treści zrzutów ekranu.
Jakie formaty plików są obsługiwane dla OCR zrzutów ekranu?
Metoda ReadScreenshot IronOCR obsługuje popularne formaty plików graficznych, takie jak PNG, JPG i BMP, co czyni ją kompatybilną z większością narzędzi i aplikacji do tworzenia zrzutów ekranu.
Czym metoda ReadScreenshot różni się od standardowych metod OCR?
W przeciwieństwie do standardowych metod OCR w IronOCR, metoda ReadScreenshot zastosowuje specyficzne optymalizacje przetwarzania wstępnego dostosowane do treści zrzutów ekranu, w tym automatyczną redukcję szumów, poprawę kontrastu i lepszą obsługę wygładzonych czcionek oraz elementów interfejsu użytkownika.
Jaki dodatkowy pakiet jest wymagany do działania funkcji OCR zrzutów ekranu?
Aby używać funkcji ReadScreenshot w IronOCR, należy zainstalować pakiet IronOcr.Extension.AdvancedScan, który zapewnia zaawansowane możliwości widzenia komputerowego, podnosząc dokładność rozpoznawania tekstu zrzutów ekranu.
Jak szybko mogę zacząć wyodrębniać tekst z zrzutów ekranu?
Z IronOCR możesz w ciągu kilku sekund wyodrębnić tekst z zrzutów ekranu, ładując zrzut ekranu do OcrInput, wywołując ReadScreenShot i natychmiast uzyskując dostęp do wyodrębnionego tekstu, wskaźnika pewności i regionów tekstu za pośrednictwem OcrPhotoResult.
For what types of content does the screenshot OCR optimize?
Optymalizacja zrzutów ekranu IronOCR obejmuje automatyczne wykrywanie elementów interfejsu użytkownika, poprawioną rozpoznawalność systemowych czcionek w różnych systemach operacyjnych oraz lepszą obsługę wygładzonych tekstów, często spotykanych w nowoczesnych aplikacjach.
Czy mogę przetwarzać określone regiony zrzutu ekranu?
Tak, IronOCR obsługuje przetwarzanie określonych regionów zrzutów ekranu, umożliwiając skupienie działań na konkretnych obszarach zainteresowania zamiast przetwarzania całego obrazu, co może poprawić wydajność i dokładność.
Czy OCR zrzutów ekranu obsługuje treści w wielu językach?
Metoda ReadScreenshot IronOCR może obsługiwać treści w wielu językach na zrzutach ekranu, dzięki czemu nadaje się do międzynarodowych aplikacji i wielojęzycznych interfejsów użytkownika.
Is PNG the best format for screenshots when using IronOCR?
Yes, using PNG format is recommended for screenshots as it preserves text clarity best due to its lossless compression, leading to more accurate OCR results.
What are some common use cases for IronOCR's `ReadScreenshot` method?
Common use cases for the `ReadScreenshot` method include automated UI testing, digital asset management, customer support tools, documentation automation, and accessibility tools for screen readers.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.