home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume6 / tif2rast-p2 < prev    next >
Text File  |  1989-03-06  |  6KB  |  214 lines

  1. Newsgroups: comp.sources.misc
  2. From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  3. Subject: v06i050: Source Code for TIFF->SunRaster (Part 2)
  4. Organization: SUNY/Buffalo Computer Science
  5. Reply-To: nobody@cs.buffalo.edu
  6.  
  7. Posting-number: Volume 6, Issue 50
  8. Submitted-by: nobody@cs.buffalo.edu
  9. Archive-name: tif2rast-p2
  10.  
  11. [Here we go again.  PLEASE MARK MULTIPART SUBMISSIONS IN ALL SUBJECT LINES!!!
  12. It makes things a lot easier for me and for people searching the archives
  13. ++bsa]
  14.  
  15. # This is a shell archive.  Remove anything before this line, then
  16. # unpack it by saving it in a file and typing "sh file".  (Files
  17. # unpacked will be owned by you and have default permissions.)
  18. #
  19. # This archive contains:
  20. # genrast.c getopt.c version.c tif2rast.1
  21.  
  22. echo x - genrast.c
  23. sed -e 's/^X//' > "genrast.c" << '//E*O*F genrast.c//'
  24. X
  25. X#include <rasterfile.h>
  26. X#include <stdio.h>
  27. X#include "defs.h"
  28. X#include "tif.h"
  29. X
  30. Xstruct rasterfile ras;
  31. X
  32. Xint bytes_per_row = 0;
  33. X
  34. Xgenrast(filename, picts)
  35. X     char    *filename;
  36. X     PICTURE *picts;
  37. X{
  38. X  int i;
  39. X
  40. X  /* calculate raster header and swap bytes */
  41. X  bytes_per_row = (int) (picts[0].image.imWidth / 8);
  42. X  ras.ras_magic = RAS_MAGIC;
  43. X  ras.ras_width = picts[0].image.imWidth;
  44. X  ras.ras_height = picts[0].image.imLength;
  45. X  ras.ras_depth = 1;
  46. X  ras.ras_length = (bytes_per_row * picts[0].image.imLength);
  47. X  ras.ras_type = 1;
  48. X  ras.ras_maptype = 0;
  49. X  ras.ras_maplength = 0;
  50. X  
  51. X  /* write out rasterfile header */
  52. X  fwrite((char *) &ras,sizeof(struct rasterfile),1,stdout);
  53. X  for (i = 0; i < picts[0].image.strips[0].byteCount; i++) 
  54. X    printf("%c", picts[0].image.strips[0].data[i]);
  55. X}
  56. X
  57. X
  58. //E*O*F genrast.c//
  59.  
  60. echo x - getopt.c
  61. sed -e 's/^X//' > "getopt.c" << '//E*O*F getopt.c//'
  62. X/*
  63. X *    I got this off net.sources from Henry Spencer.
  64. X *    It is a public domain getopt(3) like in System V.
  65. X *
  66. X *    I made some minor modifications while porting it to MS-DOS.
  67. X *        andy@coma
  68. X */
  69. X#include <stdio.h>
  70. X#include <string.h>
  71. X
  72. X#define    ARGCH    (int)':'
  73. X#define BADCH     (int)'?'
  74. X#define EMSG     ""
  75. X#define    ENDARGS  "--"
  76. X
  77. X/*
  78. X * get option letter from argument vector
  79. X */
  80. Xint    optind = 1,        /* index into parent argv vector */
  81. X    optopt;            /* character checked for validity */
  82. Xchar    *optarg;        /* argument associated with option */
  83. X
  84. X#define tell(s)    fputs(*nargv,stderr);fputs(s,stderr); \
  85. X        (void)fputc(optopt,stderr);(void)fputc('\n',stderr); \
  86. X                return(BADCH);
  87. X
  88. Xint getopt(nargc,nargv,ostr)
  89. Xint    nargc;
  90. Xchar    **nargv,
  91. X    *ostr;
  92. X{
  93. X    static char    *place = EMSG;    /* option letter processing */
  94. X    register char    *oli;        /* option letter list index */
  95. X
  96. X    if(!*place) {            /* update scanning pointer */
  97. X        if(optind >= nargc || *(place = nargv[optind]) != '-' || !*++place) return(EOF);
  98. X        if (*place == '-') {    /* found "--" */
  99. X            ++optind;
  100. X            return(EOF);
  101. X        }
  102. X    }                /* option letter okay? */
  103. X    if ((optopt = (int)*place++) == ARGCH || !(oli = strchr (ostr,optopt))) {
  104. X        if(!*place) ++optind;
  105. X        tell(": illegal option -- ");
  106. X    }
  107. X    if (*++oli != ARGCH) {        /* don't need argument */
  108. X        optarg = NULL;
  109. X        if (!*place) ++optind;
  110. X    }
  111. X    else {                /* need an argument */
  112. X        if (*place) optarg = place;    /* no white space */
  113. X        else if (nargc <= ++optind) {    /* no arg */
  114. X            place = EMSG;
  115. X            tell(": option requires an argument -- ");
  116. X        }
  117. X         else optarg = nargv[optind];    /* white space */
  118. X        place = EMSG;
  119. X        ++optind;
  120. X    }
  121. X    return(optopt);            /* dump back option letter */
  122. X}
  123. //E*O*F getopt.c//
  124.  
  125. echo x - version.c
  126. sed -e 's/^X//' > "version.c" << '//E*O*F version.c//'
  127. X#include "defs.h"
  128. XCHAR *version () {
  129. X  STATIC CHAR ConfID[] =  "1.0 (Sun Feb 12 21:55:10 1989 by wu@sunybcs)";
  130. X  return ConfID;
  131. X}
  132. //E*O*F version.c//
  133.  
  134. echo x - tif2rast.1
  135. sed -e 's/^X//' > "tif2rast.1" << '//E*O*F tif2rast.1//'
  136. X...
  137. X... tif2rast/tifdump -- convert TIFF to Sun raster
  138. X...
  139. X... written by:
  140. X... Andreas Lampen, TU-Berlin (andy@coma.UUCP)
  141. X...                 (andy@db0tui62.BITNET)
  142. X... William W.C. Wu, State University of New York at Buffalo
  143. X...                  (wu@sunybcs.bitnet)
  144. X...                  (wu@cs.buffalo.edu)
  145. X...
  146. X... Copyright (C) 1988 by the author.
  147. X... Permission is granted to copy and distribute this program
  148. X... without charge, provided this copyright notice is included
  149. X... in the copy.
  150. X... This Software is distributed on an as-is basis. There will be
  151. X... ABSOLUTELY NO WARRANTY for any part of this software to work
  152. X... correct. In no case will the author be liable to you for damages
  153. X... caused by the usage of this software.
  154. X...
  155. X.TH TIF2RAST 1
  156. X.SH NAME
  157. Xtif2Rast, tifdump \- convert TIFF files to Sun Raster
  158. X.SH SYNOPSIS
  159. X.B tif2rast
  160. X.RB [ \-h
  161. X.IR height ]
  162. X.RB [ \-s ]
  163. X.IR scalefactor ]
  164. X.RB [ \-v ]
  165. X.RB [ \-x
  166. X.IR x-offset ]
  167. X.RB [ \-y
  168. X.IR y-offset ]
  169. Xfile1 ...
  170. X.LP
  171. X.B tifdump 
  172. X.RB [ \-v ]
  173. Xfile1 ...
  174. X.SH DESCRIPTION
  175. X\fITif2rast\fR converts a TIFF file to Sun Raster file, and writes the result
  176. Xto standard output.
  177. X\fITif2rast\fR recognizes the following options:
  178. X.TP
  179. X.BI \-v
  180. Xprints the version identification of \fItif2rast\fR.
  181. X.LP
  182. X\fITifdump\fR produces a human readable dump of the given TIFF-files.
  183. XThe result is written to standard output.
  184. X.SH BUGS
  185. XThis version of \fItif2rast\fR has not been tested very extensively yet.
  186. XSo don't be too angry if it produces core dumps or incorrect Sun Raster
  187. Xfiles.
  188. XIn that case, please drop a short error report to the author.
  189. X.br
  190. X.PP
  191. XData compression is not yet supported.
  192. X.PP
  193. X.SH AUTHOR 1
  194. XAndreas Lampen, TU Berlin
  195. X.sp
  196. X.ta 0.7i 
  197. XUUCP:    unido!coma!andy
  198. X.br
  199. XBITNET:    andy@db0tui62
  200. X.PP
  201. X.SH AUTHOR 2
  202. XWilliam W.C. Wu, State University of New York at Buffalo
  203. X.sp
  204. X.ta 0.7i 
  205. XUUCP:    ..!{boulder,decvax,rutgers}!sunybcs!wu
  206. X.br
  207. XBITNET:    wu@sunybcs.bitnet
  208. X.br
  209. XINTERNET: wu@cs.buffalo.edu
  210. //E*O*F tif2rast.1//
  211.  
  212. exit 0
  213.  
  214.