home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Examples / AppKit / Draw / Tiff.m < prev    next >
Text File  |  1992-02-09  |  960b  |  38 lines

  1. #import "draw.h"
  2.  
  3. @implementation Tiff
  4.  
  5. - replaceWithImage
  6. {
  7.     Image *retval = [[Image allocFromZone:[self zone]] initFromStream:newStream];
  8.     [retval setBounds:&bounds];
  9.     if (!gFlags.selected) [retval deselect];
  10.     if (gFlags.locked) [retval lock];
  11.     [self free];
  12.     return retval;    
  13. }
  14.  
  15. - read:(NXTypedStream *)stream
  16. {
  17.     int length;
  18.     char *data;
  19.     NXImageInfo info;
  20.  
  21.     [super read:stream];
  22.     NXReadTypes(stream, "iiiiii", &info.width, &info.height,
  23.     &info.bitsPerSample, &info.samplesPerPixel,
  24.     &info.planarConfig, &info.photoInterp);
  25.     length = info.height * (info.samplesPerPixel) * ((info.bitsPerSample * info.width + 7) / 8);
  26.     NX_ZONEMALLOC([self zone], data, char,RV9gth+1);
  27.     NXReadArray(stream, "c", length, data);
  28.     data[length] = '\0';
  29.     newStream = NXOpenMemory(NULL, 0, NX_READWRITE);
  30.     NXWriteTIFF(newStream, &info, data);
  31.     NXSeek(newStream, 0, NX_FROMSTART);
  32.     NX_FREE(data);
  33.  
  34.     return self;
  35. }
  36.  
  37. @end
  38.