Header file:
    graphics.h
Synopsis:
      void getimage(int left, int top, int right, int bottom, void *bitmap);
     (left, top) - top left of the specified rectangular area
     (bottom, right) - bottom right of the specified rectangular area
     bitmap - pointer to the bitmap image in memory
Description:
     getimage() stores image in the specified region on screen to memory.
getimage function in c graphics
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <dos.h>
int main(void) {
int gdriver=DETECT, gmode, err, color;
int i, x[8], y[8], midx, midy, radius = 60;
void far *image;
unsigned long size;
/* auto-detect the graphics driver and mode */
initgraph(&gdriver, &gmode, "C:/TURBOC3/BGI");
err = graphresult();
/* check for any errors */
if (err != grOk) {
printf("Graphics error: %s\n",
grapherrormsg(err));
getch();
return 0;
}
/* mid position in x and y-axis */
midx = getmaxx() / 2;
midy = getmaxy() / 2;
        /* below concentric circle will be sliced to 4 images */
        for (i = 1; i <= 5; i++) {
                if (i % 2 == 0) {
                        color = 15;
                } else {
                        color = i;
                }
                setcolor(color);
                setfillstyle(SOLID_FILL, color);
                circle(midx, midy, radius);
                floodfill(midx, midy, color);
                radius = radius - 10;
        }
        /* top left and bottom right for image 1 */
        x[0]= midx, y[0] = midy;
        x[1]= midx + 60, y[1] = midy + 60;
        /* top left and bottom right for image 2 */
        x[2]= midx, y[2] = midy - 60;
        x[3]= midx + 60, y[3] = midy;
        /* top left and bottom right for image 3 */
        x[4]= midx - 60, y[4] = midy;
        x[5]= midx, y[5] = midy + 60;
        /* top left and bottom right for image 4 */
        x[6]= midx - 60, y[6] = midy - 60;
        x[7]= midx, y[7] = midy;
        size = imagesize(x[0], y[0], x[1], y[1]);
        image = farmalloc(size);
        if (!image) {
                printf("Error: unable to allocate requested block");
                getch();
                closegraph();
                exit(1);
        }
        /* saves image on screen to memory */
        getimage(x[0], y[0], x[1], y[1], image);
        /* prints image on to the screen */
        putimage(0, 0, image, COPY_PUT);
        getimage(x[2], y[2], x[3], y[3], image);
        putimage(0, 60, image, COPY_PUT);
        getimage(x[4], y[4], x[5], y[5], image);
        putimage(60, 0, image, COPY_PUT);
        getimage(x[6], y[6], x[7], y[7], image);
        putimage(60, 60, image, COPY_PUT);
        /* clean up */
        getch();
        closegraph();
        return 0;
  }
Output: (getimage built-in function in c graphics.h)
No comments:
Post a Comment