Header file:
graphics.h
Synopsis:
unsigned far imagesize(int left, int top, int right, int bottom);
(left, top) - top left of the specified rectangular area
(right, bottom) - bottom right of the specified rectangular area
Description:
imagesize() returns the number of bytes required to store the specified bit image.
imagesize function in c graphics
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <dos.h>
int main(void) {
/* request auto detection */
int gdriver=DETECT, gmode, err, color;
int i, x[2], y[2], midx, midy, radius = 60;
void far *image;
char str[256];
unsigned long size;
/* initialize graphic driver */
initgraph(&gdriver, &gmode, "C:/TURBOC3/BGI");
err = graphresult();
if (err != grOk) {
/* error occurred */
printf("Graphics error: %s\n",
grapherrormsg(err));
getch();
return 0;
}
/* mid position in x and y-axis */
midx = getmaxx() / 2;
midy = getmaxy() / 2;
/* concentric circle */
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;
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);
}
/* copies image from screen to memory */
getimage(x[0], y[0], x[1], y[1], image);
/* prints image from memory to screen */
putimage(0, 0, image, COPY_PUT);
/* prints the size of the copied image (in bytes) */
sprintf(str, "Size of the copied image is %d", size);
outtextxy(20, 90, str);
/* clean up */
getch();
closegraph();
return 0;
}
Output: (imagesize built-in function in c graphics.h)
No comments:
Post a Comment