All pastes #41028 Raw Edit

Untitled

public c v1 · immutable
#41028 ·published 2006-02-10 18:26 UTC
rendered paste body
/*      The IMAGE data structure        */struct image {                struct header *info;            /* Pointer to header */                unsigned char **data;           /* Pixel values */};typedef struct image * IMAGE;//// Allocates memory for a new image of the specified dimensions.//struct image  *image_init (int nc, int nr){        IMAGE x;                /* New image */        //unsigned char *ptr;             /* new pixel array */        register unsigned int i;        if (nr < 0 || nc < 0) {                printf ("Error: Bad image size (%d,%d)\n", nc, nr);                exit(-1);        }        //      Allocate the image structure        x = (struct image  *) malloc( sizeof (struct image) );        if (!x)        {                printf ("Out of storage in NEWIMAGE.\n");                exit(-1);        }        //      Allocate and initialize the header        x->info = (struct header *)malloc( sizeof(struct header) );        if (!(x->info))        {                printf ("Out of storage in NEWIMAGE.\n");                exit(-1);        }        x->info->nr = nr;        x->info->nc = nc;        x->info->oi = x->info->oj = 0;        //      Allocate the array of rows        x->data = (unsigned char **)malloc(sizeof(unsigned char *)*nr);        // Pointers to rows        if (!(x->data)) {                printf ("Out of storage in NEWIMAGE.\n");                exit(-1);        }        //      Allocated the actual rows        for (i=0; i<nr; i++)        {          x->data[i] = (unsigned char *)malloc(nc*sizeof(unsigned char)+1);             // Hack for CMVision's encodeRuns() to store run terminator          if (x->data[i]==0)          {                printf ("Out of storage. Newimage - row %d\n", i);                exit(1);          }        }        return x;}