Comment lire des captures d'écran avec IronOCR en C
La méthode ReadScreenshot d'IronOCR extrait efficacement le texte des captures d'écran, en gérant diverses dimensions et les problèmes de bruit tout en prenant en charge les formats de fichiers courants, notamment PNG, JPG et BMP.
Les captures d'écran constituent un moyen rapide de partager des informations et de capturer des données essentielles. Cependant, l'extraction de texte à partir de captures d'écran s'est avérée difficile en raison des dimensions variables et du bruit. Les captures d'écran constituent donc un support difficile pour l'OCR.
IronOCR résout ce problème en fournissant des méthodes spécialisées telles que ReadScreenshot. Cette méthode est optimisée pour la lecture de captures d'écran et l'extraction d'informations à partir de celles-ci, tout en acceptant les formats de fichiers courants. Contrairement aux méthodes OCR standard, cette méthode applique des optimisations de prétraitement spécifiques adaptées au contenu des captures d'écran, notamment la réduction automatique du bruit et l'amélioration du contraste.
Pour utiliser cette fonction, installez le package [IronOcr.Extension.AdvancedScan]. Cette extension offre des fonctionnalités avancées de vision par ordinateur qui améliorent la précision de la reconnaissance du texte des captures d'écran, en particulier pour les éléments de l'interface utilisateur, les polices du système et le texte anticrénelé dans les applications modernes.
Démarrage rapide : Lire du texte à partir d'une capture d'écran
Commencez en quelques secondes using IronOCR : ReadScreenshot — chargez votre capture d'écran dans un OcrInput, appelez ReadScreenShot, et accédez immédiatement au texte extrait, au score de confiance et aux zones de texte via le OcrPhotoResult. C'est le moyen le plus rapide de transformer des images en texte utilisable avec un minimum d'installation.
-
Installez IronOCR avec le Gestionnaire de Packages NuGet
PM > Install-Package IronOcr -
Copiez et exécutez cet extrait de code.
OcrPhotoResult result = new IronTesseract().ReadScreenShot(new OcrInput().LoadImage("screenshot.png")); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
Ce guide montre comment utiliser IronOCR pour la reconnaissance de texte de capture d'écran, en parcourant des exemples et les propriétés de l'objet résultat. Nous explorerons des scénarios avancés tels que le traitement de régions spécifiques, la gestion de contenus multilingues et l'optimisation des performances pour le traitement par lots.
Flux de travail minimal (5 étapes)
- Téléchargez la bibliothèque C# pour la lecture des captures d'écran.
- Importez les images de capture d'écran pour le traitement
- Utilisez la méthode
ReadScreenshotpour extraire le texte de l'image. - Récupérez les données extraites à l'aide de la propriété OcrPhotoResult pour un traitement ultérieur.
- Enregistrez ou exportez le texte extrait selon vos besoins
Comment extraire du texte à partir de captures d'écran à l'aide de ReadScreenshot ?
Pour lire une capture d'écran dans IronOCR, utilisez la méthode ReadScreenshot, qui prend un OcrInput en paramètre. Cette méthode est plus adaptée aux captures d'écran que son équivalent standard Read de la bibliothèque. L'optimisation comprend la détection automatique des éléments de l'interface utilisateur, une meilleure gestion des polices anticrénelées et une meilleure reconnaissance des polices système sur les différents systèmes d'exploitation.
- Cette méthode fonctionne actuellement pour des langues telles que l'anglais, le chinois, le japonais, le coréen et les alphabets à base latine.
- L'utilisation de l'analyse avancée sur .NET Framework nécessite que le projet s'exécute sur une architecture x64.
)}]
Quels types de captures d'écran conviennent le mieux ?
Voici notre entrée pour l'exemple de code ; nous démontrons la polyvalence de cette méthode en mélangeant différentes polices et tailles de texte. La méthode ReadScreenshot excelle dans la reconnaissance :
- Polices de l'interface utilisateur du système (Windows, macOS, Linux)
- Texte anticrénelé provenant d'applications modernes
- Tailles et styles de police variés
- Texte superposé sur des arrière-plans complexes
- Captures d'écran de la console et du terminal
- Contenu du navigateur avec différentes polices web
Pour des résultats optimaux, effectuez des captures d'écran en résolution native, sans compression. La méthode prend en charge différents formats d'image, mais c'est le format PNG qui préserve le mieux la clarté du texte grâce à sa compression sans perte.

Comment implémenter la méthode ReadScreenshot ?
:path=/static-assets/ocr/content-code-examples/how-to/read-screenshot-read-screenshot.cs
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
Private ocr = New IronTesseract()
Private 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)
Pour les scénarios complexes, améliorez le processus de lecture des captures d'écran en effectuant un prétraitement supplémentaire :
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", 96); // Standard screen DPI
// 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}");
}
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", 96); // Standard screen DPI
// 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}");
}
Imports IronOcr
Imports System
' Configure OCR engine with specific settings for screenshots
Dim ocr As New IronTesseract() With {
' Set language for better accuracy with non-English content
.Language = OcrLanguage.English,
' Configure for screen-resolution images
.Configuration = New TesseractConfiguration() With {
.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
' Enable whitelist for specific characters if needed
.WhiteListCharacters = Nothing
}
}
Using inputScreenshot As New OcrInput()
' Load screenshot with specific DPI setting for consistency
inputScreenshot.LoadImage("screenshotOCR.png", 96) ' Standard screen DPI
' Apply preprocessing for better accuracy
inputScreenshot.DeNoise() ' Remove screenshot artifacts
inputScreenshot.Sharpen() ' Enhance text edges
' Perform OCR with error handling
Try
Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot)
' Process results with confidence threshold
If result.Confidence > 0.8 Then
Console.WriteLine($"High confidence text extraction: {result.Text}")
Else
Console.WriteLine("Low confidence - consider image preprocessing")
End If
Catch ex As Exception
Console.WriteLine($"OCR Error: {ex.Message}")
End Try
End Using
Quelles propriétés OcrPhotoResult renvoie-t-elle ?

La sortie de la console montre l'extraction de toutes les instances de texte de la capture d'écran. Explorons les propriétés de OcrPhotoResult et comment les exploiter efficacement :
Text: Texte extrait de l'entrée OCR. Cette propriété contient tout le texte reconnu sous la forme d'une chaîne unique, en préservant la mise en page d'origine avec les sauts de ligne et l'espacement.Confidence: Une propriété double indiquant le niveau de confiance dans la précision statistique sur une échelle de 0 à 1, où 1 représente le niveau de confiance le plus élevé. Utilisez ceci pour mettre en place un contrôle de qualité dans votre application.TextRegion: un tableau d'objetsTextRegioncontenant des propriétés qui renvoient les zones où du texte est détecté sur la capture d'écran. Par défaut, tous lesTextRegionsont des classes dérivéesRectangledes modèles IronOCR. Elle inclut les coordonnéesxetyainsi queheightetwidthdu rectangle.
L'utilisation de TextRegions vous permet de :
- Extraire du texte à partir de zones spécifiques de la capture d'écran
- Identifier l'emplacement des éléments de l'interface utilisateur
- Créer des superpositions cliquables en fonction de la position du texte
- Mettre en œuvre le traitement OCR spécifique à la région
Voici un exemple de traitement de zones de texte individuelles :
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.Text}");
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.Confidence:P2}");
Console.WriteLine("---");
}
// Find specific UI elements by text content
var buttonRegion = result.TextRegions
.FirstOrDefault(r => r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase));
if (buttonRegion != null)
{
Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}");
}
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.Text}");
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.Confidence:P2}");
Console.WriteLine("---");
}
// Find specific UI elements by text content
var buttonRegion = result.TextRegions
.FirstOrDefault(r => r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase));
if (buttonRegion != null)
{
Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}");
}
Imports IronOcr
Imports System
Imports System.Linq
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage("screenshot.png")
Dim result As OcrPhotoResult = ocr.ReadScreenShot(input)
' Process each text region individually
For Each region In result.TextRegions
Console.WriteLine($"Text: {region.Text}")
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.Confidence:P2}")
Console.WriteLine("---")
Next
' Find specific UI elements by text content
Dim buttonRegion = result.TextRegions _
.FirstOrDefault(Function(r) r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase))
If buttonRegion IsNot Nothing Then
Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}")
End If
End Using
Techniques avancées de traitement des captures d'écran
Gestion des captures d'écran multilingues
Lorsque vous travaillez avec des captures d'écran contenant plusieurs langues, IronOcr fournit une prise en charge multilingue robuste. Elle est utile pour les applications internationales ou les captures d'écran d'interfaces utilisateur multilingues :
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}");
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 Using
Optimisation des performances pour le traitement par lots
Lorsque vous traitez plusieurs captures d'écran, mettez en œuvre les stratégies d'optimisation suivantes :
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}");
}
}
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 As New IronTesseract()
' Process screenshots in parallel for better performance
Dim tasks = screenshotPaths.Select(Async Function(path)
Using input As 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 Function
Bonnes pratiques pour l'OCR de captures d'écran
- Qualité de Capture : Capturez des captures d'écran à la résolution native sans mise à l'échelle
- Sélection du Format : Utilisez le format PNG pour une préservation de qualité sans perte
- Prétraitement : Appliquez des filtres appropriés en fonction du contenu de la capture d'écran
- Seuils de Confiance : Implémentez une validation basée sur la confiance pour les applications critiques
- Suivi de l'avancement : Pour les opérations de longue durée, mettez en place un suivi de l'avancement
Cas d'utilisation courants
La méthode ReadScreenshot est idéale pour :
- Tests et vérifications automatisés de l'interface utilisateur
- Systèmes de gestion d'actifs numériques
- Outils de support client pour capturer des messages d'erreur
- Automatisation de la documentation
- Outils d'accessibilité pour les lecteurs d'écran
- Applications de jeux et de streaming
Intégration avec les fonctionnalités d'IronOCR
La capacité de lecture des captures d'écran s'intègre parfaitement aux autres fonctionnalités d'IronOCR. Explorez la manipulation des résultats de l'OCR complète pour exporter des données dans différents formats, ou plongez dans la configuration avancée de Tesseract pour affiner la précision de la reconnaissance.
Résumé
La méthode ReadScreenshot d'IronOCR offre une solution puissante et optimisée pour extraire du texte à partir de captures d'écran. Grâce à un prétraitement spécialisé, une grande précision et des données de résultats complètes, il permet aux développeurs de créer des applications robustes qui traitent de manière fiable le contenu des captures d'écran. Qu'il s'agisse de créer des outils d'automatisation, des solutions d'accessibilité ou des systèmes d'extraction de données, la méthode ReadScreenshot offre les performances et la précision requises pour les environnements de production.
Questions Fréquemment Posées
Pourquoi l'extraction OCR à partir de captures d'écran est-elle un défi ?
Les captures d'écran présentent des défis uniques pour l'OCR en raison des dimensions variables et des niveaux de bruit. IronOCR résout ces problèmes grâce à sa méthode spécialisée ReadScreenshot, qui applique une réduction automatique du bruit et une amélioration du contraste spécifiquement optimisées pour le contenu des captures d'écran.
Quels sont les formats de fichiers pris en charge pour l'OCR de captures d'écran ?
La méthode ReadScreenshot d'IronOcr prend en charge les formats de fichiers d'image courants, notamment PNG, JPG et BMP, ce qui la rend compatible avec la plupart des outils et applications de capture d'écran.
En quoi la méthode ReadScreenshot diffère-t-elle des méthodes OCR standard ?
Contrairement aux méthodes d'OCR standard dans IronOcr, la méthode ReadScreenshot applique des optimisations de prétraitement spécifiques adaptées au contenu des captures d'écran, notamment la réduction automatique du bruit, l'amélioration du contraste et une meilleure gestion des polices anticrénelées et des éléments de l'interface utilisateur.
Quel est le package supplémentaire requis pour la fonctionnalité OCR des captures d'écran ?
Pour utiliser la fonction ReadScreenshot dans IronOCR, vous devez installer le package IronOcr.Extension.AdvancedScan, qui fournit des fonctionnalités avancées de vision par ordinateur qui améliorent la précision de la reconnaissance de texte des captures d'écran.
En combien de temps puis-je commencer à extraire du texte à partir de captures d'écran ?
Avec IronOCR, vous pouvez extraire du texte à partir de captures d'écran en quelques secondes en chargeant votre capture d'écran dans un OcrInput, en appelant ReadScreenShot et en accédant immédiatement au texte extrait, au score de confiance et aux régions de texte via l'OcrPhotoResult.
Pour quels types de contenu l'OCR de capture d'écran est-elle optimisée ?
L'optimisation des captures d'écran d'IronOcr comprend la détection automatique des éléments de l'interface utilisateur, une meilleure reconnaissance des polices système sur les différents systèmes d'exploitation et une meilleure gestion du texte anticrénelé que l'on trouve couramment dans les applications modernes.
Puis-je traiter des parties spécifiques d'une capture d'écran ?
Oui, IronOcr prend en charge le traitement de régions spécifiques de captures d'écran, ce qui vous permet de cibler des zones d'intérêt particulières plutôt que de traiter l'ensemble de l'image, ce qui peut améliorer les performances et la précision.
Le contenu multilingue est-il pris en charge dans l'OCR de captures d'écran ?
La méthode ReadScreenshot d'IronOcr peut gérer le contenu multilingue des captures d'écran, ce qui la rend adaptée aux applications internationales et aux interfaces utilisateur multilingues.
Comment IronOCR peut-il améliorer la précision des données ?
IronOCR améliore la précision des données grâce à ses algorithmes de reconnaissance avancés et ses fonctionnalités de correction d'image, garantissant que le processus d'extraction de texte est à la fois fiable et précis.
Y a-t-il un essai gratuit disponible pour IronOCR ?
Oui, Iron Software propose un essai gratuit d'IronOCR, permettant aux utilisateurs de tester ses fonctionnalités et capacités avant de prendre une décision d'achat.

