This is duplicim.c in view mode; [Download] [Up]
/* * DuplicateImage() - duplicates fields in Image struct * * RCS: * $Revision: 2.3 $ * $Date: 1996/05/03 02:21:34 $ * * Security: * Unclassified * * Description: * Adapted from ImageMagick 3.0 * * Input Parameters: * type identifier description * * text * * Output Parameters: * type identifier description * * text * * Return Values: * value description * * Side Effects: * text * * Limitations and Comments: * text * * Development History: * when who why * 5/5/94 mm first cut */ #include "combine.h" #include "defines.h" Image *DuplicateImage(image,columns,rows,copy_pixels) Image *image; unsigned int columns, rows, copy_pixels; { Image *copy_image; register int i; /* ** Allocate space for Image struct */ copy_image=(Image *) malloc(sizeof(Image)); if (copy_image == (Image *) NULL) return((Image *) NULL); *copy_image=(*image); if (image->comments != (char *) NULL) { copy_image->comments=(char *) malloc(((strlen(image->comments)+1)*sizeof(char))); if (copy_image->comments == (char *) NULL) return((Image *) NULL); (void) strcpy(copy_image->comments,image->comments); } copy_image->columns=columns; copy_image->rows=rows; if (image->colormap != (RGB *) NULL) { copy_image->colormap=(RGB *) malloc(image->colors*sizeof(RGB)); if (copy_image->colormap == (RGB *) NULL) return((Image *) NULL); for (i=0; i < image->colors; i++) copy_image->colormap[i]=image->colormap[i]; } if (image->signature != (char *) NULL) { copy_image->signature=(char *) malloc(((strlen(image->signature)+1)*sizeof(char))); if (copy_image->signature == (char *) NULL) return((Image *) NULL); (void) strcpy(copy_image->signature,image->signature); } if (!copy_pixels) copy_image->packets=copy_image->columns*copy_image->rows; copy_image->pixels=(Runlength *) malloc((unsigned int) copy_image->packets*sizeof(Runlength)); if (copy_image->pixels == (Runlength *) NULL) return((Image *) NULL); if (copy_pixels) { register Runlength *p, *q; if ((image->columns != columns) || (image->rows != rows)) return((Image *) NULL); p=image->pixels; q=copy_image->pixels; for (i=0; i < image->packets; i++) { *q=(*p); p++; q++; } } return(copy_image); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.