# include“l_bitmap.h”
L_LTIMGCOR_APIL_INTL_FindCandidateFormFields (pBitmap pOptions pOutputs)
从位图提取候选表单字段使用各种选项。有两个主要类型的字段:文本字段和有机磁共振字段。
位图句柄指针引用处理位图。
领域检测选项。这个值不能为空。
指针与提取的字段被更新。
| 价值 | 意义 |
|---|---|
| 成功 | 函数是成功的。 |
| < 1 | 一个错误发生。指返回代码。 |
抗扭斜图像首先,如果它是倾斜的。
L_FindCandidateFormFields支持8位,12位和16位灰度图像,支持24位,32位,48比特位和64位彩色图像。
L_FindCandidateFormFields不支持设置矩形区域。
L_FindCandidateFormFields不支持32位灰度图像。它返回错误代码ERROR_GRAY32_UNSUPPORTED如果一个32位的灰度图像是传递给这个函数。
Win32 x64, Linux。
从位图提取候选表单字段使用各种选项。
L_INT FindCandidateFormFieldsExample (L_VOID){L_INT nRet =成功;BITMAPHANDLE InputBitmap = {0};FIND_CANDIDATE_FORM_FIELDS_OPTIONS选项;FIND_CANDIDATE_FORM_FIELDS_OUTPUTS * pOutputs =零;也就是说红= RGB (255, 0, 0);也就是说青色= RGB (0255255);也就是说蓝= RGB (0, 0255);也就是说绿色= RGB (0255 0);选项。uVerticalLineMinimumLength = 3;选项。uHorizontalLineMinimumLength = 10;选项。uStructSize =运算符(FIND_CANDIDATE_FORM_FIELDS_OPTIONS);L_TCHAR szBuffer1 [100];wsprintf (szBuffer1文本(“D: \ \ \ \有机磁共振\ \ 300 _omr_sample.tif”形式));nRet = L_LoadBitmap (szBuffer1 &InputBitmap,运算符(BITMAPHANDLE), 0 ORDER_BGRORGRAY空,空);nRet = L_FindCandidateFormFields(选项,&InputBitmap &pOutputs);如果(nRet ! =成功){转到清理;}L_HDC hDC =零;HPEN HPEN =零;/ /标准化图纸如果(pBitmap - > ViewPerspective ! = TOP_LEFT){nRet = L_ChangeBitmapViewPerspective (pBitmap pBitmap,运算符(BITMAPHANDLE) TOP_LEFT);如果(nRet ! =成功)转到清理;}如果(pBitmap - > BitsPerPixel ! = 24){nRet = L_ColorResBitmap (pBitmap pBitmap,运算符CRF_BYTEORDERBGR (BITMAPHANDLE), 24日,空,空,0,空,空);如果(nRet ! =成功)转到清理;}/ /开始画的形象hDC = L_CreateLeadDC (pBitmap);如果(hDC = = NULL)转到清理;/ /不填SelectObject (hDC GetStockObject (NULL_BRUSH));为(L_UINT我= 0;我< pOutputs - > TextFields.uCount;我+ +){矩形矩形= pOutputs - > TextFields.pTextFieldAreas[我].rcBounds;也就是说颜色= (pOutputs - > TextFields.pTextFieldAreas[我]。uFieldType = = TEXT_FIELD_TYPE_BOX) ?青色:蓝色;hPen = CreatePen (PS_SOLID 2颜色);如果(hPen = = NULL)转到清理;SelectObject (hDC hPen);矩形(hDC、rect.left rect.top、rect.right rect.bottom);DeleteObject (hPen);矩形= pOutputs - > TextFields.pTextFieldAreas[我].rcFilledAreaBounds;颜色=红;DeleteObject (hPen);hPen = CreatePen (PS_SOLID 2颜色);如果(hPen = = NULL)转到清理;SelectObject (hDC hPen);矩形(hDC、rect.left rect.top、rect.right rect.bottom);DeleteObject (hPen);}也就是说颜色=绿色;hPen = CreatePen (PS_SOLID 2颜色);如果(hPen = = NULL)转到清理;SelectObject (hDC hPen);为(L_UINT我= 0;我< pOutputs - > OMRFields.uCount;我+ +){矩形矩形= pOutputs - > OMRFields.pOMRFieldAreas[我].rcUnfilledBound;如果(pOutputs - > OMRFields.pOMRFieldAreas[我]。uFieldType = = OMR_FIELD_TYPE_BOX){矩形(hDC、rect.left rect.top、rect.right rect.bottom);}其他的{椭圆(hDC、rect.left rect.top、rect.right rect.bottom);}}/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /清理:如果(hPen ! = NULL)DeleteObject (hPen);如果(hDC ! = NULL)L_DeleteLeadDC (hDC);/ /自由加载图片如果(InputBitmap.Flags.Allocated)L_FreeBitmap (&InputBitmap);/ /自由的结果L_FindCandidateFormFieldsFree (&pOutputs);返回nRet;}
