L_OcrPage_FromBitmap

# include“ltocr.h”

L_LTOCR_APIL_INTEXT_FUNCTIONL_OcrPage_FromBitmap(引擎,页面,bitmapHandle, sharingMode,回调,userData)

创建一个L_OcrPage从位图。

参数

L_OcrEngine引擎

OCR引擎的句柄。

L_OcrPage*页面

地址L_OcrPage用创建的OCR页句柄更新的变量。

BITMAPHANDLE* bitmapHandle

源位图句柄。该参数不能为NULL。

L_OcrBitmapSharingModesharingMode

选项来确定映像的所有权。

L_OcrProgressCallback回调

可选的回调显示操作进度。

L_VOID*用户数据

传递给回调函数的可选用户数据。

返回

价值 意义
成功 活动很成功。
< 1 发生错误。指返回代码

评论

使用此函数可以快速创建L_OcrPage直接从位图句柄调用必要的方法(例如L_OcrPage_Recognize),然后直接使用L_OcrPage_GetTextL_OcrPage_GetRecognizedCharacters

保存的结果L_OcrPage直接导入PDF或microsoftword等文档文件,则必须创建L_OcrDocument句柄中的文件模式,并使用L_OcrDocument_AddPage

你必须打电话L_OcrPage_Destroy在你用完这个之后L_OcrPage释放它的内存。

sharingMode的值决定了位图句柄被用于创建页面后会发生什么,如下所示:

L_OcrImageSharingMode_None

由此产生的L_OcrPage不拥有位图句柄。当L_OcrPage被销毁时,位图不会被释放。这种模式对于从已经在应用程序的其他部分中使用的位图快速创建OCR页面(并获得识别结果)非常有用。使用此选项将节省内存,因为您不必创建图像的副本,并且页面在执行识别时将使用相同的图像数据。

重要提示:在此模式下,用户有责任在整个页面期间保持位图句柄为活动状态。之后才释放位图L_OcrPage对象被销毁,不再使用。

L_OcrBitmapSharingMode_AutoFree

由此产生的L_OcrPage拥有映像。当L_OcrPage销毁,位图也被释放。当应用程序的其他部分不再使用位图时,此模式非常有用。例如,位图是从扫描或相机中获得的,仅用于OCRing。使用此选项将把位图句柄的所有权转移到页面,当页面被销毁时,它将被释放。

必需的dll和库

另请参阅

功能

主题

例子

静态(L_TCHAR* outputFileName)//从Ocr1.tif, Ocr2.tif, Ocr3.tif和Ocr4.tif中创建一个多页TIFHBITMAPLIST bitmapList;L_INT retCode = -1;SAVEFILEOPTION = {0};retCode = L_CreateBitmapList(&bitmapList);如果(retCode != SUCCESS)返回retCode;BITMAPHANDLE位图[4];L_TCHAR *imageFiles[] = {MAKE_IMAGE_PATH(L_TEXT(“OCR1.tif”)),MAKE_IMAGE_PATH (L_TEXT (“OCR2.tif”)),MAKE_IMAGE_PATH (L_TEXT (“OCR3.tif”)),MAKE_IMAGE_PATH (L_TEXT (“OCR4.tif”}));(L_INT i = 0;i < _countof(imageFiles);我+ +)retCode = L_LoadBitmap(imageFiles[i], &bitmaps[i],运算符(bitmaphandle), 0, order_rgb, null, null);如果(retCode != SUCCESS)返回retCode;retCode = L_InsertBitmapListItem(bitmapList, (L_UINT)-1, &bitmaps[i]);如果(retCode != SUCCESS)转到清理;//保存输出文件retCode = L_GetDefaultSaveFileOption(&saveOptions,运算符(SAVEFILEOPTION));如果(retCode != SUCCESS)转到清理;//保存所有页面其。PageNumber = -1;retCode = L_SaveBitmapList(outputFileName, bitmapList, FILE_CCITT_GROUP4, 1,0, &saveOptions);清理://释放列表中的所有位图,并释放句柄L_DestroyBitmapList (bitmapList);返回retCode;L_INT L_OcrPage_FromBitmapExample ()L_INT retCode = -1;L_OcrEngine ocrEngine = NULL;L_OcrDocumentManager = NULL;L_OcrDocument ocrDocument = NULL;L_OcrPage ocrPage = NULL;LOADFILEOPTION loadOpts;FILEINFO FILEINFO;//在这个例子中,我们需要一个多页的TIF文件。//如果你有一个不同的示例文件,替换下面的文件名L_TCHAR* multiPageFile = MAKE_IMAGE_PATH(L_TEXT(“Ocr.tif”));如果(CreateMultiPageFile(multiPageFile) != SUCCESS)返回失败;//创建引擎实例retCode = L_OcrEngineManager_CreateEngine(L_OcrEngineType_Advantage, &ocrEngine);如果(retCode != SUCCESS)返回retCode;//使用默认参数启动引擎retCode = L_OcrEngine_Startup(ocrEngine, NULL, OCR_ADVANTAGE_RUNTIME_DIR);如果(retCode == SUCCESS)retCode = L_OcrEngine_GetDocumentManager(ocrEngine, &ocrDocumentManager);如果(retCode != SUCCESS)转到清理;//创建一个OCR文档retCode = L_OcrDocumentManager_CreateDocument(ocrDocumentManager, &ocrDocument, L_OcrCreateDocumentOptions_AutoDeleteFile, NULL);如果(retCode != SUCCESS)转到清理;//加载我们创建的多页tif文件中的每一页并处理它们L_GetDefaultLoadFileOption (&loadOpts运算符(LOADFILEOPTION));retCode = L_FileInfo(multiPageFile, &fileInfo,运算符(FILEINFO), FILEINFO_TOTALPAGES, & louses);如果(retCode != SUCCESS)转到清理;(L_INT pageNum = 1;pageNum <= fileInfo.TotalPages;pageNum + +)//加载页面BITMAPHANDLE bitmap = {0};loadOpts。PageNumber = pageNum;retCode = L_LoadBitmap(multiPageFile, &bitmap,运算符(BITMAPHANDLE), 0, ORDER_RGB, & louses, &fileInfo);如果(retCode != SUCCESS)转到清理;//创建Ocr页面retCode = L_OcrPage_FromBitmap(ocrEngine, &ocrPage, &bitmap, L_OcrBitmapSharingMode_AutoFree, NULL, NULL);如果(retCode != SUCCESS)L_FreeBitmap(位图);转到清理;//将所有权转移到OCR页面bitmap.Flags.Allocated = 0;//在页面中查找区域retCode = L_OcrPage_AutoZone(ocrPage, NULL, NULL);如果(retCode != SUCCESS)转到清理;/ /识别retCode = l_ocrpage_recognition (ocrPage, NULL, NULL);如果(retCode != SUCCESS)转到清理;//在文档文件模式中,识别后将OcrPage添加到OcrDocument中retCode = L_OcrDocument_AddPage(ocrDocument, ocrPage);如果(retCode != SUCCESS)转到清理;//销毁页面释放位图L_OcrPage_Destroy (ocrPage);ocrPage = NULL;/ /保存retCode = L_OcrDocument_Save(ocrDocument, MAKE_IMAGE_PATH(L_TEXT(“Ocr.pdf”)), documentformat_pdf, null, null);清理:如果(ocrPage != NULL)L_OcrPage_Destroy (ocrPage);如果(ocrDocument != NULL)L_OcrDocument_Destroy (ocrDocument);如果(ocrEngine != NULL)L_OcrEngine_Destroy (ocrEngine);返回retCode;
OCR模块- LEAD引擎C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。