跳至页脚内容
使用 IRONOCR

如何在 C# 中从截图中获取文本

很多人可能会想,"什么是OCR屏幕截图?" 其他人可能想知道如何将任何文字的屏幕截图转换为可编辑的数字文本格式或.txt、.doc格式。 如果您是这些人中的一员,那么不用再担心,因为我们为您提供了完美的解决方案。

在本文中,我们将讨论不同的工具,这些工具将让您对屏幕截图执行OCR,光学字符识别。

外面有许多OCR工具,但今天我们将使用IronOCR从屏幕截图中提取文本。

1. IronOCR

IronOCR是为C#和VB.NET编程语言设计的软件库,旨在让开发人员能够为他们的应用程序添加OCR(光学字符识别)功能。 该库可用于识别图像中的文本并将其转换为机器可读文本。 该库基于被认为是目前最准确的OCR引擎之一的Tesseract OCR引擎构建。

IronOCR可以用于从许多不同文件格式的图像中读取文本,包括PNG、JPG、TIFF和PDF。 它还提供了一系列高级特性来处理文本识别,例如识别多种语言的能力,以及识别被旋转或倾斜的图像中的文本的能力。 此外,开发人员可以使用IronOCR快速将OCR功能集成到他们的应用程序中,因为它提供了一个简单易用的API,可以从C#或VB.NET代码中调用。 使用IronOCR,您可以选择您的OCR语言,并对图像、数字PDF文件和扫描的PDF文件执行OCR。

IronOCR被认为是开发人员想要为他们的应用程序添加OCR功能的一个不错的选择。 它是开源的,易于使用和集成,快速,准确,并与最新的OCR技术保持同步。

2. IronOCR功能

IronOCR提供了广泛的功能,帮助开发人员将OCR功能集成到他们的应用程序中。 IronOCR的一些关键功能包括:

  1. 多语言支持:IronOCR可以识别超过60种语言的文本,包括英语、西班牙语、德语、法语、意大利语和中文。
  2. 自动检测文本方向:IronOCR可以自动检测图像中文本的方向,即使图像已经被旋转或倾斜。
  3. 支持多种图像格式:IronOCR可以从许多不同文件格式的图像中读取文本,包括PNG、JPG、TIFF,以及PDF
  4. 可自定义的识别设置:开发人员可以自定义识别设置,以提高特定类型图像或使用场景的识别精度。
  5. 能够识别扫描文档和多页PDF中的文本。
  6. 快速识别和高准确性:IronOCR使用Tesseract OCR引擎,这是目前可用的最准确和广泛使用的OCR引擎之一。
  7. 易于使用的API:IronOCR提供了一个简单易用的API,可以从C#或VB.NET代码中调用,这使得将OCR功能整合到任何应用程序中变得容易。

总的来说,IronOCR是一个强大的工具,提供了广泛的功能,帮助开发人员为他们的应用程序添加OCR功能。

3. 在Visual Studio中创建新项目

打开 Visual Studio 并转到文件菜单。 选择"新建项目",然后选择控制台应用程序。

在适当的文本框中输入项目名称并选择路径。 然后,点击创建按钮。 选择所需的.NET框架,如下图所示:

如何在C#中从屏幕截图提取文字,图1:在Visual Studio中创建新项目 在Visual Studio中创建新项目

Visual Studio项目现在将为控制台应用程序生成结构。 完成后,会打开program.cs文件,您可以在其中编写并执行源代码。

如何在C#中从屏幕截图提取文字,图2:从Visual Studio的新建项目向导生成的program.cs文件 从Visual Studio的新建项目向导生成的program.cs文件

现在我们可以添加IronOCR库并测试程序。

4. 安装IronOCR

在Visual Studio中,您可以轻松地将IronOCR与您的C#项目集成。

IronOCR提供了多种与C# .NET项目集成的方法。 这里,我们将讨论其中之一:使用NuGet包管理器安装IronOCR。

在Visual Studio中,前往工具 > NuGet包管理器 > 包管理器控制台

如何在C#中从屏幕截图提取文字,图3:NuGet包管理器UI NuGet包管理器UI

点击后,Visual Studio窗口底部将出现一个新的控制台。 在控制台中输入以下命令并按回车。

Install-Package IronOcr

IronOCR将在几秒钟内安装完成。

5. 使用IronOCR对屏幕截图执行OCR

IronOCR是一个强大的OCR库,可以用于识别屏幕截图中的文本。 通过IronOCR,您可以截取文本的屏幕截图,然后使用该库的OCR功能将截图中的文本转换为数字、可编辑的格式。 以下是您可能在C#中使用IronOCR对屏幕截图执行OCR的示例。 要执行屏幕截图OCR,只需截取屏幕截图并运行以下代码,将文本提取到任何您希望的输出格式。

using IronOcr;
using System;

class Program
{
    static void Main()
    {
        // Create an instance of IronTesseract, the core OCR engine
        var ocr = new IronTesseract();

        // Perform OCR on the specified image file
        var result = ocr.Read("ocr.png");

        // Output the recognized text to the console
        Console.WriteLine(result.Text);
    }
}
using IronOcr;
using System;

class Program
{
    static void Main()
    {
        // Create an instance of IronTesseract, the core OCR engine
        var ocr = new IronTesseract();

        // Perform OCR on the specified image file
        var result = ocr.Read("ocr.png");

        // Output the recognized text to the console
        Console.WriteLine(result.Text);
    }
}
Imports IronOcr
Imports System

Friend Class Program
	Shared Sub Main()
		' Create an instance of IronTesseract, the core OCR engine
		Dim ocr = New IronTesseract()

		' Perform OCR on the specified image file
		Dim result = ocr.Read("ocr.png")

		' Output the recognized text to the console
		Console.WriteLine(result.Text)
	End Sub
End Class
$vbLabelText   $csharpLabel

输入图片文件

如何在C#中从屏幕截图提取文字,图4:用于输入的示例屏幕截图 用于输入的示例屏幕截图

文本输出

- IRONOCR for NET
- The C# OCR Library
- OCR for C# to scan and read images & PDFs
- NET OCR library with 125+ global language packs
- Output as text, structured data, or searchable PDFs
- Supports NET 6, 5, Core, Standard, Framework

6. 使用IronOCR对特定区域执行OCR

IronOCR允许您对图像中的特定区域进行OCR。 这在图像中包含多个文本区域时非常有用,您只想识别特定区域内的文本。 下面是一个示例代码。

using IronOcr;
using IronSoftware.Drawing;
using System;

class Program
{
    static void Main()
    {
        var ocrTesseract = new IronTesseract();

        using (var ocrInput = new OcrInput())
        {
            // Define the rectangle to crop the image for OCR
            var contentArea = new CropRectangle(x: 0, y: 0, width: 350, height: 150);

            // Add the image with the specified cropping area
            ocrInput.AddImage("ocr.png", contentArea);

            // Perform the OCR operation on the defined area
            var ocrResult = ocrTesseract.Read(ocrInput);

            // Output the recognized text
            Console.WriteLine(ocrResult.Text);
        }
    }
}
using IronOcr;
using IronSoftware.Drawing;
using System;

class Program
{
    static void Main()
    {
        var ocrTesseract = new IronTesseract();

        using (var ocrInput = new OcrInput())
        {
            // Define the rectangle to crop the image for OCR
            var contentArea = new CropRectangle(x: 0, y: 0, width: 350, height: 150);

            // Add the image with the specified cropping area
            ocrInput.AddImage("ocr.png", contentArea);

            // Perform the OCR operation on the defined area
            var ocrResult = ocrTesseract.Read(ocrInput);

            // Output the recognized text
            Console.WriteLine(ocrResult.Text);
        }
    }
}
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

Friend Class Program
	Shared Sub Main()
		Dim ocrTesseract = New IronTesseract()

		Using ocrInput As New OcrInput()
			' Define the rectangle to crop the image for OCR
			Dim contentArea = New CropRectangle(x:= 0, y:= 0, width:= 350, height:= 150)

			' Add the image with the specified cropping area
			ocrInput.AddImage("ocr.png", contentArea)

			' Perform the OCR operation on the defined area
			Dim ocrResult = ocrTesseract.Read(ocrInput)

			' Output the recognized text
			Console.WriteLine(ocrResult.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

输出

- IRONOCR for NET
- The C# OCR Library
- OCR for C# to scan and read images & PDFs
- NET OCR library with 125+ global language packs

7. 使用IronOCR对图像执行OCR

要对图像执行OCR并将识别的文本保存到一个.txt文件中,您可以使用以下代码。

using IronOcr;
using System;

class Program
{
    static void Main()
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput("ocr.png"))
        {
            // Perform OCR on the image
            var result = ocr.Read(input);

            // Save the recognized text to a .txt file
            result.SaveAsTextFile("output.txt");
        }
    }
}
using IronOcr;
using System;

class Program
{
    static void Main()
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput("ocr.png"))
        {
            // Perform OCR on the image
            var result = ocr.Read(input);

            // Save the recognized text to a .txt file
            result.SaveAsTextFile("output.txt");
        }
    }
}
Imports IronOcr
Imports System

Friend Class Program
	Shared Sub Main()
		Dim ocr = New IronTesseract()
		Using input = New OcrInput("ocr.png")
			' Perform OCR on the image
			Dim result = ocr.Read(input)

			' Save the recognized text to a .txt file
			result.SaveAsTextFile("output.txt")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

输出文件的内容如下所示:

如何在C#中从屏幕截图提取文字,图5:生成的output.txt文件的内容 生成的output.txt文件的内容

8. 了解更多

阅读图像文本提取教程,以获取有关如何对图像执行OCR的更多信息。

IronOCR是一个套件的一部分,这个套件包含五个.NET库,设计用于处理不同类型的文档。 您可以以两个许可证的价格购买所有五个库。

常见问题解答

如何使用 C# 中的 OCR 从截图中提取文本?

您可以使用 C# 中的 IronOCR 通过其简单的 API 将截图转换为数字文本可编辑格式,以从截图中提取文本。首先,通过 Visual Studio 中的 NuGet 安装 IronOCR,然后使用 IronOCR 提供的代码示例在您的截图图像上执行 OCR。

什么是光学字符识别 (OCR)?

光学字符识别 (OCR) 是一种将扫描的纸质文档、PDF 文件或数字相机拍摄的图像等不同类型的文档转换为可编辑和可搜索数据的技术。IronOCR 是一个 C# 库,可以在应用程序中实现 OCR。

IronOCR 能否处理多种语言的 OCR?

是的,IronOCR 支持 60 多种语言的文本识别,使其在国际应用中变得通用。它提供了设置语言偏好的选项,以确保准确的文本提取。

IronOCR 支持哪些图像格式用于 OCR?

IronOCR 支持多种图像格式用于 OCR,包括 PNG、JPG、TIFF 和 PDF。此灵活性允许开发人员处理各种图像来源,而无需手动转换格式。

文本方向如何影响 OCR 准确性?

文本方向可以极大地影响 OCR 的准确性。IronOCR 能自动检测和校正图像中的文本方向,确保旋转或倾斜的文本能够被准确识别并转换为数字格式。

如何在 C# 项目中安装 IronOCR?

要在 C# 项目中安装 IronOCR,请使用 Visual Studio 中的 NuGet 包管理器。搜索 IronOCR 并将其安装到项目中,以开始使用其 OCR 功能从图像中提取文本。

使用 IronOCR 进行文本识别有哪些优势?

IronOCR 提供了多种优势,包括强大的多语言支持、自动文本方向校正、对多种图像格式的支持,以及可定制的设置以提高识别准确性。其简单的 API 便于与 C# 应用程序集成。

IronOCR 适合识别图像特定区域的文本吗?

是的,IronOCR 允许开发人员定义图像中的特定区域以执行 OCR,从而实现目标化的文本提取。此功能对于仅部分图像包含相关文本的场景非常有用。

OCR 问题的一些常见故障排除提示是什么?

OCR 问题的一些常见故障排除提示包括确保图像清晰且高分辨率,检查文本方向,确保设置正确的语言,以及升级到最新版本的 IronOCR 以获得最佳性能。

如何将 OCR 结果转换为 .txt 或 .doc 文件?

使用 IronOCR,您可以通过从图像中提取文本并使用 C# 中的标准文件 I/O 操作保存来将 OCR 结果转换为 .txt 或 .doc 文件。这允许您从基于图像的文本创建可编辑的文档。

Kannaopat Udonpant
软件工程师
在成为软件工程师之前,Kannapat 在日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了车辆机器人实验室的成员,隶属于生物生产工程系。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他可以直接从编写大多数 IronPDF 代码的开发者那里学习。除了同行学习外,Kannapat 还喜欢在 Iron Software 工作的社交方面。不撰写代码或文档时,Kannapat 通常可以在他的 PS5 上玩游戏或重温《最后生还者》。