在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
C# OCR库
using IronOcr;
string imageText = new IronTesseract().Read(@"images\image.png").Text;
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// OCR entire document
ocrInput.LoadPdf("example.pdf", Password: "password");
int[] pages = { 1, 2, 3, 4, 5 };
// Alternatively OCR selected page numbers
ocrInput.LoadPdfPages("example.pdf", pages, Password: "password");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\imageWithBarcode.png");
var ocrResult = ocrTesseract.Read(ocrInput);
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.Language = OcrLanguage.Arabic;
using (var ocrInput = new OcrInput())
{
ocrInput.LoadImage(@"images\arabic.gif");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
// Example with a Custom Trained Font Being used:
var ocrTesseractCustomerLang = new IronTesseract();
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest);
using (var ocrInput = new OcrInput())
{
ocrInput.LoadPdf(@"images\mixed-lang.pdf");
var ocrResult = ocrTesseractCustomerLang.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
ocrInput.Deskew();
ocrInput.DeNoise();
ocrInput.Despeckle();
ocrInput.EnhanceResolution(225);
ocrInput.Sharpen();
ocrInput.Erode();
ocrInput.Dilate();
ocrInput.Scale(200);
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
// Fast Dictionary
ocrTesseract.Language = OcrLanguage.EnglishFast;
// Turn off unneeded options
ocrTesseract.Configuration.ReadBarCodes = false;
// Assume text is laid out neatly in an orthogonal document
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// First load all image(s)
ocrInput.LoadImage(@"images\image.png");
// Note: You don't need all of them; most users only need Deskew() and occasionally DeNoise()
ocrInput.WithTitle("My Document");
ocrInput.Binarize();
ocrInput.Contrast();
ocrInput.Deskew();
ocrInput.DeNoise();
ocrInput.Despeckle();
ocrInput.Dilate();
ocrInput.EnhanceResolution(300);
ocrInput.Invert();
ocrInput.Rotate(90);
ocrInput.Scale(150);
ocrInput.Sharpen();
ocrInput.ToGrayScale();
ocrInput.Erode();
// WIZARD - If you are unsure use the debug-wizard to test all combinations:
string codeToRun = OcrInputFilterWizard.Run(@"images\image.png", out double confidence, ocrTesseract);
Console.WriteLine(codeToRun);
// Optional: Export modified images so you can view them.
foreach (var page in ocrInput.GetPages())
{
page.SaveAsImage($"filtered_{page.Index}.bmp");
}
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using IronSoftware.Drawing;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage("blue_and_pink.png");
ocrInput.WithTitle("Recolored");
ocrInput.ReplaceColor(Color.Pink, Color.White, 10);
// Pink detection has 10% tolerance
ocrInput.ReplaceColor(Color.Blue, Color.Black, 5);
// Blue detection has 5% tolerance
// Export the modified image so you can manually inspect it.
foreach (var page in ocrInput.GetPages())
{
page.SaveAsImage($"black_and_white_page_{page.Index}.bmp");
}
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using IronSoftware.Drawing;
// We can delve deep into OCR results as an object model of
// Pages, Barcodes, Paragraphs, Lines, Words and Characters
// This allows us to explore, export and draw OCR content using other APIs/
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("example.tiff", pages);
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
// Page object
int PageNumber = page.PageNumber;
string PageText = page.Text;
int PageWordCount = page.WordCount;
// null if we dont set Ocr.Configuration.ReadBarCodes = true;
OcrResult.Barcode[] Barcodes = page.Barcodes;
AnyBitmap PageImage = page.ToBitmap(ocrInput);
int PageWidth = page.Width;
int PageHeight = page.Height;
double PageRotation = page.Rotation; // angular correction in degrees from OcrInput.Deskew()
foreach (var paragraph in page.Paragraphs)
{
// Pages -> Paragraphs
int ParagraphNumber = paragraph.ParagraphNumber;
string ParagraphText = paragraph.Text;
AnyBitmap ParagraphImage = paragraph.ToBitmap(ocrInput);
int ParagraphX_location = paragraph.X;
int ParagraphY_location = paragraph.Y;
int ParagraphWidth = paragraph.Width;
int ParagraphHeight = paragraph.Height;
double ParagraphOcrAccuracy = paragraph.Confidence;
OcrResult.TextFlow paragrapthText_direction = paragraph.TextDirection;
foreach (var line in paragraph.Lines)
{
// Pages -> Paragraphs -> Lines
int LineNumber = line.LineNumber;
string LineText = line.Text;
AnyBitmap LineImage = line.ToBitmap(ocrInput);
int LineX_location = line.X;
int LineY_location = line.Y;
int LineWidth = line.Width;
int LineHeight = line.Height;
double LineOcrAccuracy = line.Confidence;
double LineSkew = line.BaselineAngle;
double LineOffset = line.BaselineOffset;
foreach (var word in line.Words)
{
// Pages -> Paragraphs -> Lines -> Words
int WordNumber = word.WordNumber;
string WordText = word.Text;
AnyBitmap WordImage = word.ToBitmap(ocrInput);
int WordX_location = word.X;
int WordY_location = word.Y;
int WordWidth = word.Width;
int WordHeight = word.Height;
double WordOcrAccuracy = word.Confidence;
foreach (var character in word.Characters)
{
// Pages -> Paragraphs -> Lines -> Words -> Characters
int CharacterNumber = character.CharacterNumber;
string CharacterText = character.Text;
AnyBitmap CharacterImage = character.ToBitmap(ocrInput);
int CharacterX_location = character.X;
int CharacterY_location = character.Y;
int CharacterWidth = character.Width;
int CharacterHeight = character.Height;
double CharacterOcrAccuracy = character.Confidence;
// Output alternative symbols choices and their probability.
// Very useful for spellchecking
OcrResult.Choice[] Choices = character.Choices;
}
}
}
}
}
using IronOcr;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\page1.png");
ocrInput.LoadImage(@"images\page2.bmp");
var page = new int[]{ 2, 3 };
ocrInput.LoadImageFrames(@"images\page3.tiff", page);
ocrInput.Deskew();
var ocrResult = ocrTesseract.Read(ocrInput);
ocrResult.SaveAsSearchablePdf("searchable.pdf");
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
// This is done by default and can be omitted:
// ocrTesseract.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false,
RenderHocr = true,
BlackListCharacters = "`ë|^",
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
}
};
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using IronSoftware.Drawing;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// A 41% improvement on speed by specifiying a pixel region
var ContentArea = new Rectangle(x: 215, y: 1250, width: 1335, height: 280);
ocrInput.LoadImage("img/example.png", ContentArea);
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImageFrame("images/multiframe.tiff", 1);
var ocrResult = ocrTesseract.Read(ocrInput);
ocrResult.SaveAsSearchablePdf("searchable.pdf");
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.TargetDPI = 300;
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("scan.pdf");
// Image processing is automatically multi-threaded
ocrInput.Deskew();
// OCR reading is automatically multi-threaded too
var ocrResult = ocrTesseract.Read(ocrInput);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.OcrProgress += (_, ocrProgressEventsArgs) =>
{
Console.WriteLine(ocrProgressEventsArgs.ProgressPercent + "% " + ocrProgressEventsArgs.Duration.TotalSeconds + "s");
};
using var input = new OcrInput();
input.LoadPdf("large.pdf");
// Progress events will fire during the read operation even if the main thread is blocked.
var result = ocrTesseract.Read(input);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("images/multiframe.tiff", pages);
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("scan.pdf", Password: "password");
// Clean up twisted pages
ocrInput.Deskew();
var ocrResult = ocrTesseract.Read(ocrInput);
ocrResult.SaveAsSearchablePdf("searchable.pdf");
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
//PM> Install-Package IronOcr.Languages.Arabic
//PM> Install-Package IronOcr.Languages.Chinese
using IronOcr;
using System;
var Ocr = new IronTesseract();
// Add a primary language (Default is English)
Ocr.Language = OcrLanguage.English;
// Add as many secondary languages as you like
Ocr.AddSecondaryLanguage(OcrLanguage.Arabic);
Ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified);
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var Result = Ocr.Read(ocrInput);
Console.WriteLine(Result.Text);
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
foreach (var word in page.Words)
{
word.ToBitmap(ocrInput).SaveAs($"page{page.PageNumber}_word{word.WordNumber}.png", AnyBitmap.ImageFormat.Png);
}
}
在当今的数字时代,快速响应 (QR) 代码已成为利用黑白方块高效、便捷地共享信息不可或缺的工具。这些由黑白方块组成的方形图案包含大量数据,从网站 URL 和产品详细信息到联系信息等等。虽然使用智能手机扫描二维码已变得司空见惯,但在电脑上扫描二维码则为设备之间的无缝集成提供了新的可能性。在本指南中,我们将探讨能让您利用电脑资源轻松扫描二维码的方法和工具。无论您是要访问网站、检索联系方式,还是要与各种数字内容进行交互,掌握在电脑上扫描二维码的技巧无疑将成为您在这个互联世界中的一项宝贵技能。
在本文中,我们将讨论如何使用网络摄像头或笔记本电脑的摄像头 QR 扫描应用程序扫描 QR 码。QR 码阅读器已成为连接物理和数字领域的桥梁,用户只需简单扫描就能立即检索数据。虽然 QR 码扫描主要与移动设备有关,但现在技术的进步已使使用电脑摄像头或其他外设扫描 QR 码成为可能。此外,如果您想在您的 .NET 项目中实施 QR 码扫描选项,您只需使用 IronBarcode 图书馆
大多数现代笔记本电脑和台式电脑都配备了内置网络摄像头。这些网络摄像头可以作为扫描二维码的便捷工具,而无需额外的硬件或软件。下面介绍如何使用带有 QR 码扫描选项的摄像头应用程序进行扫描:
选择 QR 码扫描软件:首先要选择与计算机操作系统兼容的二维码扫描软件。有多种适用于不同平台的选择,如 Windows、macOS 和 Linux。QR 码扫描器 "桌面应用程序是一种流行的选择。
下载并安装:只需前往谷歌下载你喜欢的应用程序,或从微软官方商店获取。例如,QR 码扫描器可在 微软商店.
启动软件:打开二维码扫描软件,并授予其访问计算机网络摄像头的必要权限。
定位二维码:将二维码置于网络摄像头的视野内。确保二维码清晰且光线充足,以获得最佳扫描效果。
扫描和解释:当软件检测到相机框架内的 QR 码时,会自动处理其中编码的数据。这可能会导致各种结果,如打开特定网站、显示文本或触发操作。
上传图片:您还可以通过上传图片来扫描二维码图片。只需点击 "打开 QR 图像 "按钮,选择要上传图像的文件,就会打开一个显示搜索结果的对话框。
IronBarcode 是一款功能强大、特性丰富的软件库,在简化条形码生成和识别过程中发挥着重要作用。IronBarcode 界面设计直观,功能丰富,是开发人员将强大的条形码功能无缝集成到其软件解决方案中不可或缺的资源。无论开发复杂的库存管理系统、动态销售点平台,还是任何其他依赖于条码交互的应用程序,IronBarcode 都能提供一个卓越的框架,确保毫不费力的集成和显著的效率。
要在您的 .NET 项目中安装并使用 IronBarcode,您只需设置 .NET 环境并创建一个 C# 或 VB.NET 项目。然后,打开 NuGet 包管理器控制台并执行以下命令:
Install-Package IronOcr
IronBarcode 还可在以下网站下载 官方 NuGet 网站.
现在,我们将举例说明如何使用 IronBarcode 扫描图像中的 QR 码。使用 IronBarcode 扫描二维码或自动扫描二维码非常简单。让我们来看看这个例子。
using IronBarCode;
using System;
var resultFromFile = BarcodeReader.Read(@"QR.png");
Console.WriteLine(resultFromFile);
using IronBarCode;
using System;
var resultFromFile = BarcodeReader.Read(@"QR.png");
Console.WriteLine(resultFromFile);
Imports IronBarCode
Imports System
Private resultFromFile = BarcodeReader.Read("QR.png")
Console.WriteLine(resultFromFile)
在当今互联互通的数字环境中,利用计算机资源无缝扫描代码的能力为物理和数字领域之间架起了一座宝贵的桥梁。二维码已发展成为即时获取大量信息的多功能工具。随着内置网络摄像头、原生相机应用程序或浏览器中的第三方应用程序的集成,这种能力也扩展到了计算机上。从软件选择到网络摄像头的使用,用户只需按照简单的步骤操作,就能毫不费力地解读外部 QR 码,打开通往网站、联系方式等信息的通道。
此外,先进的解决方案,如 IronBarcode 条形码技术为开发人员提供了将条形码功能集成到各种应用程序中的强大工具,从而增强了这种体验。随着基于计算机的 QR 代码生成和读取技术的应用,扫描在简化信息交换方面变得不可或缺。
要进一步了解如何在 Windows 计算机上读取 QR 码,以及如何从 PDF 文件中提取整个 QR 码,您可以在以下网站找到完整的教程 IronBarcode 网站。
PM > Install-Package IronOcr
30天试用密钥 立即。
15天试用密钥 立即。
想要免费将IronOCR部署到实际项目中吗?
您的试用密钥应在电子邮件中。试用表格已提交
成功地.
如果不是,请联系
support@ironsoftware.com
想要免费将IronOCR部署到实际项目中吗?
您的试用密钥应在电子邮件中。试用表格已提交
成功地.
如果不是,请联系
support@ironsoftware.com
想要免费将IronOCR部署到实际项目中吗?
您的试用密钥应在电子邮件中。试用表格已提交
成功地.
如果不是,请联系
support@ironsoftware.com
想要免费将IronOCR部署到实际项目中吗?
您的试用密钥应在电子邮件中。试用表格已提交
成功地.
如果不是,请联系
support@ironsoftware.com
免费开始
无需信用卡
在生产中测试无水印。
随时随地为您服务。
获取30天的完全功能产品。
几分钟内即可启动和运行。
在您的产品试用期间,全面访问我们的支持工程团队。
免费开始
无需信用卡
在生产中测试无水印。
随时随地为您服务。
获取30天的完全功能产品。
几分钟内即可启动和运行。
在您的产品试用期间,全面访问我们的支持工程团队。
谢谢!
您的许可证密钥已发送到所提供的电子邮件。联系我们
专业
$600 美元
$299 美元
5个.NET产品,两件的价格
套件总价值:
$7,192 美元
升级价格
今天
只有
$499 美元
24小时后
$1,098 美元