Borland C++ reference

imagesize

raw OCR

Returns the number of bytes required to store a bit image.

Defined in header <graphics.h>

Syntax

#include <graphics.h>
unsigned    far imagesize(int    left, int top, int right, int bottom);

Portability

DOSUNIXWindowsANSI CC++ only
■

Remarks

imagesize determines the size of the ijiemory area required to store a bit image. If the size required for the selected image is greater than or equal to 64K - 1 bytes, imagesize returns 0xFFFF (-1).

Return value

imagesize returns the size of the required memory area in bytes.

See also

Example

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

#define ARROW_SIZE 10
void draw_arrow (int x, int y);

int main(void)
{
   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode;
   void *arrow;
   int X, y, maxx;
   unsigned int size;
   /* initialize graphics and local variables  */
   initgraph(&gdriver, &gmode,  "");

   /* read result of initialization  */
   errorcode = graphresult ();
   if (errorcode != grOk) {  /* an error occurred  */
      printf{"Graphics error: %s\n", grapherrormsg (errorcode));
      printf("Press any key to halt:");
      getchO ;
      exit(l);                /* terminate with an error code */
   }
   maxx = getmaxx( );
   X = 0;
   y = getmaxy () / 2 ;
   /* draw the image to be grabbed  */
   draw_arrow(x, y) ;
   /* calculate the size of the  image */
   size = imagesize(x, y-ARROW_SIZE, x+ (4*ARR0W_SIZE), y+ARROW_SIZE)

   /* allocate memory to hold the  image */
   arrow = malloc(size) ;

   /* grab the image */
   getimage(x, y-ARROW_SIZE, x+ (4*ARR0W_SIZE), y+ARROW_SIZE, arrow);

   /* repeat until a key is pressed  */
   while  (IkbhitO)  {
      /* erase old image */
      putimage(x, y-ARROW_SIZE, arrow, XOR_PUT) ;
      X += ARROW_SIZE;
      if  (x >= maxx)
          X = 0;
      /* plot new image */
      putimage(x, y-ARROW_SIZE, arrow, XOR_PUT) ;
   }
   /* clean up */
   free (arrow);
   closegraphO ;
   return 0;
}
void draw_arrow (int x, int y)
{
   /* draw an arrow on the screen  */
   moveto(x, y);
   linerel(4*ARR0W_SIZE, 0);
   linerel(-2*ARR0W_SIZE, -1*ARR0W_SIZE) ;
   linereKO,  2*ARR0W_SIZE) ;
   linerel(2*ARR0W_SIZE, -1*ARR0W_SIZE) ;

Differences from modern implementations

Nothing recorded yet.

Modern references

These are search links, not yet checked by hand.