Replaces the characters intersecting with the specified rectangles.
public bool ReplaceIntersectedCharacters(IEnumerable<LeadRect> bounds,char replaceCharacter)
Public Function ReplaceIntersectedCharacters(ByVal bounds As IEnumerable(Of LeadRect),ByVal replaceCharacter As Char) As Boolean
public:bool ReplaceIntersectedCharacters(IEnumerable<LeadRect^>^ bounds,Char replaceCharacter)
bounds
List of rectangles containing the bounds to check. These values are in pixels.
replaceCharacter
The new character code to use. Use 0 to delete the characters.
true if one or more characters were replaced; otherwise, false.
This is a helper method used to quickly perform actions such as redacting or removing characters from the recognition data based on their locations.
This method calls ReplaceIntersectedCharacters(rects, replaceCharacter, intersectionPercentage) with intersectionPercentage equal to 0.
The following example performs OCR, then redacts all characters under a specified rectangle, and saves the result as a PDF file.
using Leadtools;using Leadtools.Codecs;using Leadtools.Ocr;using Leadtools.Forms.Common;using Leadtools.Document.Writer;using Leadtools.WinForms;using Leadtools.Drawing;using Leadtools.ImageProcessing;using Leadtools.ImageProcessing.Color;public void OcrAndRedactToPdf(){string tifFileName = Path.Combine(LEAD_VARS.ImagesDir, "OCR1.tif");string pdfFileNameBefore = Path.Combine(LEAD_VARS.ImagesDir, "OCR-Redact-Before.pdf");string pdfFileNameAfter = Path.Combine(LEAD_VARS.ImagesDir, "OCR-Redact-After.pdf");// Create OCR engineusing (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)){ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir);// Load the OCR1.tif image and recognize itRasterImage image = ocrEngine.RasterCodecsInstance.Load(tifFileName, 1);using (IOcrPage ocrPage = ocrEngine.CreatePage(image, OcrImageSharingMode.AutoDispose)){ocrPage.Recognize(null);// Save it, note that all the data is in the result PDF file, including "Fast Facts"using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument(null, OcrCreateDocumentOptions.AutoDeleteFile)){ocrDocument.Pages.Add(ocrPage);ocrDocument.Save(pdfFileNameBefore, DocumentFormat.Pdf, null);}// Now, redact "Fast Facts", this could be an input from the user based on rubber banding or Regex.LeadRect redactRect = LeadRect.FromLTRB(300, 800, 730, 900);char replaceCharacter = '*';IOcrPageCharacters ocrPageCharacters = ocrPage.GetRecognizedCharacters();ocrPageCharacters.ReplaceIntersectedCharacters(new LeadRect[] { redactRect }, replaceCharacter);ocrPage.SetRecognizedCharacters(ocrPageCharacters);// Save it again, note that "Fast Facts" is replaced with * charactersusing (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument(null, OcrCreateDocumentOptions.AutoDeleteFile)){ocrDocument.Pages.Add(ocrPage);ocrDocument.Save(pdfFileNameAfter, DocumentFormat.Pdf, null);}}}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS21\Bin\Common\OcrLEADRuntime";}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.OcrImports Leadtools.FormsImports Leadtools.Document.WriterImports Leadtools.WinFormsImports Leadtools.DrawingImports Leadtools.ImageProcessingImports Leadtools.ImageProcessing.ColorPublic Sub OcrAndRedactToPdf()Dim tifFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "OCR1.tif")Dim pdfFileNameBefore As String = Path.Combine(LEAD_VARS.ImagesDir, "OCR-Redact-Before.pdf")Dim pdfFileNameAfter As String = Path.Combine(LEAD_VARS.ImagesDir, "OCR-Redact-After.pdf")' Create OCR engineUsing ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrLEADRuntimeDir)' Load the OCR1.tif image And recognize itDim Image As RasterImage = ocrEngine.RasterCodecsInstance.Load(tifFileName, 1)Using ocrPage As IOcrPage = ocrEngine.CreatePage(Image, OcrImageSharingMode.AutoDispose)ocrPage.Recognize(Nothing)' Save it, note that all the data Is in the result PDF file, including "Fast Facts"Using ocrDocument As IOcrDocument = ocrEngine.DocumentManager.CreateDocument(Nothing, OcrCreateDocumentOptions.AutoDeleteFile)ocrDocument.Pages.Add(ocrPage)ocrDocument.Save(pdfFileNameBefore, DocumentFormat.Pdf, Nothing)End Using' Now, redact "Fast Facts", this could be an input from the user based on rubber banding Or Regex.Dim redactRect As LeadRect = LeadRect.FromLTRB(300, 800, 730, 900)Dim replaceCharacter As Char = "*"cDim ocrPageCharacters As IOcrPageCharacters = ocrPage.GetRecognizedCharacters()ocrPageCharacters.ReplaceIntersectedCharacters(New LeadRect() {redactRect}, replaceCharacter)ocrPage.SetRecognizedCharacters(ocrPageCharacters)' Save it again, note that "Fast Facts" Is replaced with * charactersUsing ocrDocument As IOcrDocument = ocrEngine.DocumentManager.CreateDocument(Nothing, OcrCreateDocumentOptions.AutoDeleteFile)ocrDocument.Pages.Add(ocrPage)ocrDocument.Save(pdfFileNameAfter, DocumentFormat.Pdf, Nothing)End UsingEnd UsingEnd UsingEnd SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images"Public Const OcrLEADRuntimeDir As String = "C:\LEADTOOLS21\Bin\Common\OcrLEADRuntime"End Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
