API Reference Guide > Recognition Component API Reference > Recognition Component Functions Reference > Zone Support Functions > IG_REC_zone_rect_add |
Adds a new rectangle to an existing zone.
Copy Code
|
|
---|---|
AT_ERRCOUNT ACCUAPI IG_REC_zone_rect_add( HIG_REC_IMAGE hImage, AT_INT nZoneIndex, LPAT_RECT lpRect ); |
Name | Type | Description |
---|---|---|
hImage | HIG_REC_IMAGE | Image handle. |
nZoneIndex | AT_INT | Index of the zone to be updated. |
lpRect | LPAT_RECT | The rectangle to be added to the given zone. |
See IG_REC_image_import.
Copy Code
|
|
---|---|
AT_ERRCOUNT ErrCount = 0; HIG_REC_IMAGE higRecImage = 0; HIGEAR higImage = 0; AT_INT iZoneCount = 0; LPAT_RECT lpRects = 0; AT_INT iRectNum = 0; ErrCount += IG_load_file("Multipage.tif", &higImage); ErrCount += IG_REC_image_import(higImage, &higRecImage); ErrCount += IG_REC_zones_locate(higRecImage, NULL); ErrCount += IG_REC_zones_count_get(higRecImage, &iZoneCount); if(iZoneCount) { ErrCount += IG_REC_zone_layout_get(higRecImage, 0, &lpRects, &iRectNum); if(iRectNum) { AT_RECT rNewRect = lpRects[iRectNum-1]; rNewRect.top = rNewRect.bottom; rNewRect.bottom = rNewRect.top + 100; rNewRect.left = (rNewRect.right + rNewRect.left) / 2; //... ErrCount += IG_REC_zone_rect_add(higRecImage, 0, &rNewRect); } } ErrCount += IG_REC_image_delete(higRecImage); ErrCount += IG_image_delete(higImage); ErrCount += IG_REC_free(lpRects); |
Because the new rectangle can overlap previous rectangles, the function will recalculate the rectangle list of the zone. The resulting union must be a "pizza box" shape. Table zones and vertical text zones cannot receive new rectangles.