getimage
raw OCR
Saves a bit image of the specified region into memory.
Defined in header <graphics.h>
Syntax
#include <graphics.h>
void far getimage(int left, int top, int right, int bottom, void far *bitmap);
Portability
| DOS | UNIX | Windows | ANSI C | C++ only |
|---|---|---|---|---|
| ■ |
Remarks
getimage copies an image from the screen to memory.
left, top, right, and bottom define the screen area to which the rectangle is copied, bitmap points to the area in memory where the bit image is stored. The first two words of this area are used for the width and height of the rectangle; the remainder holds the image itself.
Return value
None.
See also
Example
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
void save_screen(void far *buf[4]);
void restore_screen(void far *buf[4]);
int maxx, maxy;
int main (void)
{
int gdriver=DETECT, gmode, errorcode;
void far *ptr[4] ;
/* autodetect the graphics driver and mode */
initgraph(&gdriver, Jcgmode, "");
errorcode = graphresult (); /* check for any errors */
if (errorcode != grOk) {
printf ("Graphics error: %s\n", grapherrormsg(errorcode)
printf ("Press any key to halt:");
getchO;
exit(l) ;
}
maxx = getmaxx ();
maxy = getmaxyO ;
/* draw an image on the screen */
rectangle(0, 0, maxx, maxy) ;
line(0, 0, maxx, maxy) ;
line(0, maxy, maxx, 0);
save_screen(ptr); /* save the current screen */
getchO; /* pause screen */
cleardeviceO ; /* clear screen */
restore_screen(ptr) ; /* restore the screen */
getchO; /* pause screen */
closegraphO ;
return 0;
void save_screen(void far *buf[4])
{
unsigned size;
int ystart=0, yend, yincr, block;
yincr = (maxy+1) / 4;
yend = yincr;
/* get byte size of image */
size = imagesize(0, ystart, maxx, yend)
for (block=0; block<=3; block++) {
if ((buf[block] = farinalloc(size)) == NULL) {
closegraph();
printf ("Error: not enough heap space in save_screen().\n");
exit(l);
}
getimage (0, ystart, maxx, yend, buf[block]);
ystart = yend + 1;
yend += yincr + 1;
}
void restore_screen(void far *buf[4])
(
int ystart=0, yend, yincr, block;
yincr = (maxy+1) / 4;
yend = yincr;
for (block=0; block<=3; block++) {
putimage(0, ystart, buf [block], COPY_PUT);
farfree (buf[block]);
ystart = yend + 1;
yend += yincr + 1;
Differences from modern implementations
Nothing recorded yet.
Modern references
These are search links, not yet checked by hand.
Stable link: /3.1/graphics.h/getimage/
· short form /3.1/getimage/