This is GIF.m in view mode; [Download] [Up]
#import "GIF.h" #import <stdio.h> #import <stdlib.h> #import <libc.h> #import <zone.h> #import <mach.h> #import <appkit/Window.h> #import <appkit/Panel.h> #import <appkit/tiff.h> extern int readgifheader(char *filename, int *xsize, int *ysize); extern int readgif(unsigned char *rmap, unsigned char *gmap, unsigned char *bmap); // GIF.m // // Written by Vince DeMarco // demarco@cpsc.ucalgary.ca // // This program is In the Public Domain. If you make any improvements to this // program please let me know // @implementation GIF:Image - init { self = [super init]; strncpy(windowIconName,"gif.icon.tiff",14); return(self); } -open:(char *)filename { strncpy(fileName,filename,1024); if (readgifheader(filename,&xsize,&ysize) < 0){ NXRunAlertPanel("GIF ERROR", "Can't open %s", NULL, NULL, NULL, fileName); return(self); } // Allocate three buffers to store the R,G,B Triplets r = (unsigned char *)NXZoneMalloc(newZone,ysize*xsize*(sizeof(unsigned char))); g = (unsigned char *)NXZoneMalloc(newZone,ysize*xsize*(sizeof(unsigned char))); b = (unsigned char *)NXZoneMalloc(newZone,ysize*xsize*(sizeof(unsigned char))); if (readgif(r,g,b) < 0){ NXRunAlertPanel("GIF ERROR", "%s Not an GIF file ", NULL, NULL, NULL, fileName); return(self); } numColors = 3; [self displayImage]; return(self); } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.