- AppGraphics Documentation
- Getting Started with AppGraphics
- Window Management
- Colors and Patterns
- Mouse Interactions
- Keyboard Interaction
- Graphics Shapes and Primitives
- Text Output
- Graphic Viewports
- Images
- Windows Controls
- Common Dialogs
- Clipboard Operations
- Threads, Thread Safety, and Idling
- AppGraphics License Agreement
Images
These procedures can be used for loading, saving, and printing images to and from a window. Images are always saved as Windows Bitmap files, although other image types may be loaded.
allocateimage
Fortran subroutine allocateimage (img, width, height)
Description
Allocates an image object capable of storing an image of the desired width and height
Parameters
Parameter | Fortran Type | Description |
img | type(imagetype), intent(out) | The properly allocated image buffer |
width | integer | Desired image width |
height | integer | Desired image height |
copyimage
Fortran subroutine copyimage (left, top, img)
Description
Copies an image from the current window starting at the given coordinates. The width and height of the copy region is determined by the allocated image object.
Parameters
Parameter | Fortran Type | Description |
left | integer | Left window coordinate of region to copy |
top | integer | Top window coordinate of region to copy |
img | type(imagetype), intent(inout) | An allocated image buffer |
freeimage
Fortran subroutine freeimage (img)
Description
Frees the memory associated with an image object
Parameters
Parameter | Fortran Type | Description |
img | type(imagetype) | An allocated image buffer |
getimage
C void getimage (left, top, right, bottom, img)
Description
Retrieves image data from the current window, storing it in the already-allocated buffer img.
Parameters
Parameter | C Type | Description |
left | int | Left edge of the image |
top | int | Top edge of the image |
right | int | Right inclusive edge of the image |
bottom | int | Bottom inclusive edge of the image |
img | void * | A buffer allocated to hold the image |
imagesize
C unsigned long imagesize (width, height)
Description
Calculates the number of bytes necessary to store an image of a given width and height. This function is normally used to determine the size of a necessary image buffer prior to allocation.
Parameters
Parameter | C Type | Description |
width | long | Width of the image |
height | long | Height of the image |
Return Value
C unsigned long
The number of bytes necessary to store the image
pasteimage
Fortran subroutine pasteimage (left, top, img, operation)
Description
Pastes an image into the current window starting at the given coordinates. The value of operation determines how the operation is handled:
ID | Description |
COPY_PUT | Copy |
XOR_PUT | Exclusive Or |
OR_PUT | Inclusive Or |
AND_PUT | And |
NOT_PUT | Copy the inverse of the source |
Parameters
Parameter | Fortran Type | Description |
left | integer | Left window coordinate to apply the paste operation |
top | integer | Top window coordinate to apply the paste operation |
img | type(imagetype) | An allocated image buffer |
operation | integer | The operation to use for pasting |
printimage
C void printimage (title, left, top, right, bottom, active)
Fortran subroutine printimage (title, left, top, right, bottom, active)
Description
Prints the region specified in the current window to a printer after displaying a “Print” dialog. The active flag can be used in double-buffering situations to speccify the active buffer. By default, the entire active buffer is printed. This procedure will scale the selected region to fill the printed page with a reasonable border encircling it.
Parameters
Parameter | C Type | Fortran Type | Description |
title | char * | character(*)1 | The title to print at the top of the document |
left | int | integer1 | The left coordinate in the window |
top | int | integer1 | The top coordinate in the window |
right | int | integer1 | The right coordinate in the window |
bottom | int | integer1 | The bottom coordinate in the window |
active | bool | logical1 | True to use the active graphics buffer, False to use the visible buffer |
putimage
C void putimage (left, top, img, operation)
Description
Draws the image into the current window at the specified location. The value of operation determines how the operation is handled:
ID | Description |
COPY_PUT | Copy |
XOR_PUT | Exclusive Or |
OR_PUT | Inclusive Or |
AND_PUT | And |
NOT_PUT | Copy the inverse of the source |
Parameters
Parameter | C Type | Description |
left | int | Left edge of the image |
top | int | Top edge of the image |
img | void * | A pointer to the image data |
operation | int | The operation to use for pasting |
readimagefile
C void readimagefile (filename, left, top, right, bottom)
Fortran subroutine readimagefile (filename, left, top, right, bottom)
Description
Reads in an image file specified by filename and draws the resulting image at the coordinates specified. If filename is NULL or omitted, an “Open” dialog will appear. Image data falling outside the specified bounds will be clipped, not scaled. If the coordinates specify a region bigger than the image itself, the image will be drawn starting at the left-top position.
Parameters
Parameter | C Type | Fortran Type | Description |
filename | char * | character(*)1 | The filename to read |
left | int | integer1 | The left coordinate at which to draw the loaded image in the window |
top | int | integer1 | The top coordinate at which to draw the loaded image in the window |
right | int | integer1 | The right coordinate at which to draw the loaded image in the window |
bottom | int | integer1 | The bottom coordinate at which to draw the loaded image in the window |
writeimagefile
C void writeimagefile (filename, left, top, right, bottom, active)
Fortran subroutine writeimagefile (filename, left, top, right, bottom, active)
Description
Writes an image file specified by filename using the graphics at the coordinates specified. If filename is NULL or omitted, an “Save As…” dialog will appear. The active flag can be used in double-buffering situations to speccify the active buffer. By default, the entire active buffer is saved.
Parameters
Parameter | C Type | Fortran Type | Description |
filename | char * | character(*)1 | The filename to read |
left | int | integer1 | The left coordinate in the window |
top | int | integer1 | The top coordinate in the window |
right | int | integer1 | The right coordinate in the window |
bottom | int | integer1 | The bottom coordinate in the window |
active | bool | logical1 | True to use the active graphics buffer, False to use the visible buffer |
1 Optional named argument