ApGetImageRes()

Extract the image data from a widget in a widget database

Synopsis:

#include <Ap.h>

PhImage_t *ApGetImageRes(
              ApDBase_t const *dbase,
              char const *wgt_name );

Arguments:

dbase
The widget database pointer returned from ApOpenDBase() or ApOpenDBaseFile().
wgt_name
The name of widget within the database that has the image that you want to extract.

Library:

Ap

Description:

ApGetImageRes() lets you extract images from a widget in a PhAB widget database.

This function is mainly used to perform simple animation. You can create a series of tiles, using any widget that supports images, in a PhAB widget database; to create the animation, cycle through the tiles by pulling out the images in sequence, updating another widget that is visible within the application window.

Returns:

A pointer to a PhImage_t structure, or NULL if the widget or image data couldn't be found.


Note: This function returns a pointer into the widget database; don't close the database while still using the image. If you must close the widget database, you should first use PiDuplicateImage() to make a copy of the image and associated structures.
  1. Make a copy of the image data, such as image pixel data, alpha channel, palette, etc, using PiDuplicateImage().
  2. Update the PhImage_t structure to point to the new copies of the data.

Examples:

PhImage_t   *image;

mydbase = ApOpenDBase( ABM_mypicture );
image = ApGetImageRes( mydbase, "myimage" );

/* update the label widget with the new image */

if ( image ) {
    PtSetResource( ABW_label_wgt, Pt_ARG_LABEL_IMAGE,
                   image, 0 );
}

Classification:

Photon

Safety:
Interrupt handler No
Signal handler No
Thread No

See also:

ApOpenDBase(), ApOpenDBaseFile(), PgDrawPhImage*(), PhCreateImage(), PhImage_t, PhMakeGhostBitmap(), PhMakeTransBitmap(), PhMakeTransparent(), PhReleaseImage(), PmMemCreateMC(), PmMemFlush(), PxLoadImage()

Images and Animation in the Raw Drawing and Animation chapter of the Photon Programmer's Guide