ImageGear for C and C++ on Windows v21.0 - Updated
API Reference Guide / Core Component API Reference / Core Component Functions Reference / Image Processing Functions / IG_IP_crop
In This Topic
    IG_IP_crop
    In This Topic

    This function crops the image to the specified rectangle.

    Declaration:

     
    Copy Code
    AT_ERRCOUNT ACCUAPI IG_IP_crop(
       HIGEAR hIGear,
       LPAT_RECT lpCropRect
    );
    

    Arguments:

    Name Type Description
    hIGear HIGEAR HIGEAR handle of image.
    lpCropRect LPAT_RECT Pointer to an AT_RECT struct specifying the rectangular portion of the image to keep. The remainder of the image is removed and discarded.

    Return Value:

    Returns 0 if successful. Otherwise, returns the number of ImageGear errors that occurred during this function call.

    Supported Raster Image Formats:

    All pixel formats supported by ImageGear for C and C++.

    Sample:

    Artext, Image Processing, Timing, GUI, MFC PDFDemo

    Example:

     
    Copy Code
    HIGEAR hIGear;            // HIGEAR handle of the image
    AT_ERRCOUNT nErrcount;    // Count of errs on stack upon ret from func
    AT_DIMENSION nWidth, nHeight;  // Dimensions of the image
    AT_RECT rcRect;        // Crop rectangle
    
    // Load image file "picture.bmp" from working directory
    nErrcount = IG_load_file("picture.bmp", &hIGear);
    if(nErrcount == 0)
    {
        // Get dimensions of the image and initialize the crop rectangle
        IG_image_dimensions_get(hIGear, &nWidth, &nHeight, NULL);
        rcRect.left = 0;
        rcRect.top = 0;
        rcRect.right = nWidth / 2;
        rcRect.bottom = nHeight / 2;
    
        nErrcount = IG_IP_crop(hIGear, &rcRect);
        // ...
        // Destroy the image
        IG_image_delete(hIGear);
    }
    

    Remarks:

    Only pixels that fall on or inside the lpCropRect rectangle will be kept in the resulting image. The dimensions of the resulting image are then same as that of the lpCropRect. The removed parts of the image are discarded.

    If right or bottom bound of the rectangle falls beyond the image dimensions, the rectangle is clipped to the image bounds. The resulting image dimensions cannot be larger than the dimensions of the source image. Use IG_IP_resize_canvas to extend the image bounds without scaling the image.