ImageGear for C and C++ on Windows v19.3 - Updated
IG_REC_zone_rect_subtract
API Reference Guide > Recognition Component API Reference > Recognition Component Functions Reference > Zone Support Functions > IG_REC_zone_rect_subtract

Subtracts a rectangle from an existing zone.

Declaration:

 
Copy Code
AT_ERRCOUNT ACCUAPI IG_REC_zone_rect_subtract(
   HIG_REC_IMAGE hImage,
   AT_INT nZoneIndex,
   LPAT_RECT lpRect
);

Arguments:

Name Type Description
hImage HIG_REC_IMAGE Image handle.
nZoneIndex AT_INT Index of the zone to be updated.
lpRect AT_RECT The rectangle to be subtracted from the given zone.

Return Value:

Returns the number of ImageGear errors that occurred during this function call.

Supported Raster Image Formats:

See IG_REC_image_import.

Example:

 
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    rSubRect = lpRects[iRectNum-1];
            rSubRect.top = (rSubRect.bottom + rSubRect.top) / 2;
            rSubRect.bottom = rSubRect.bottom;
            //...
            ErrCount += IG_REC_zone_rect_subtract(higRecImage, 0, &rSubRect);
        }
}

ErrCount += IG_REC_image_delete(higRecImage);
ErrCount += IG_image_delete(higImage);
ErrCount += IG_REC_free(lpRects);

Remarks:

The function will recalculate the rectangle list of the zone. The resulting list must describe a "pizza box" shape. Subtraction cannot be performed on table zones and vertical text zones.

See Also

HIG_REC_IMAGE