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_resize_canvas
In This Topic
    IG_IP_resize_canvas
    In This Topic

    This function resizes the image referenced by hIGear without scaling it.

    Declaration:

     
    Copy Code
    AT_ERRCOUNT LACCUAPI IG_IP_resize_canvas(
       HIGEAR hIGear,
       AT_DIMENSION new_width,
       AT_DIMENSION new_height,
       AT_PIXPOS nXPos,
       AT_PIXPOS nYPos,
       LPAT_PIXEL lpBkgColor
    );
    

    Arguments:

    Name Type Description
    hIGear HIGEAR Image to process.
    new_width AT_DIMENSION Width of the image after resizing.
    new_height AT_DIMENSION Height of the image after resizing.
    nXPos AT_PIXPOS X offset at which to put left top corner of the image after resizing.
    nYPos AT_PIXPOS Y offset at which to put left top corner of the image after resizing.
    lpBkgColor LPAT_PIXEL Pointer to a color value array to fill the empty area, where one element is for each color channel in the image. Ignored for vector images.

    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:

    See GUI component source code.

    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_INT channelCount;    // Count of channels in the image.
    AT_PIXEL lpBackground[256];    // Buffer for background color.
    AT_INT i;
     
    // Load image file "picture.bmp" from working directory.
    nErrcount = IG_load_file("picture.bmp", &hIGear);
    if(nErrcount == 0)
    {
        // Get dimensions of the image.
        IG_image_dimensions_get(hIGear, &nWidth, &nHeight, NULL);
        // Get channel count.
        IG_image_channel_count_get(hIGear, &channelCount);
        // Initialize background color with '255'.
        for(i = 0; i < channelCount; i ++)
        {
            lpBackground[i] = (AT_PIXEL)255;
        }
     
        nErrcount = IG_IP_resize_canvas(hIGear, nWidth / 2, nHeight / 2, 0, 0, lpBackground);
        // ...
        // Destroy the image.
        IG_image_delete(hIGear);
    }
    

     

    Remarks:

    The image data in the bitmap is not stretched or compressed, but copied to the specified offset in the new image.