home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / utilities / utilsm / netpbmsca / vms / tex / NetPBM / NetPBM_ct.html (.txt) < prev    next >
Encoding:
LaTeX Document  |  1993-12-06  |  181.6 KB  |  5,690 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//en">
  2. <!--Converted with LaTeX2HTML 2022 (Released January 1, 2022) -->
  3. <HTML lang="en">
  4. <HEAD>
  5. <TITLE>Contents of NetPBM</TITLE>
  6. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
  7. <META NAME="viewport" CONTENT="width=device-width, initial-scale=1.0">
  8. <META NAME="Generator" CONTENT="LaTeX2HTML v2022">
  9. <LINK REL="STYLESHEET" HREF="NetPBM.css">
  10. </HEAD>
  11. <BODY bgcolor="#ffffff" text="#000000" link="#9944EE" vlink="#0000ff" alink="#00ff00">
  12. PBMPLUS1L13 October 1993
  13. pbmplus - enhanced portable bitmap toolkit
  14. DESCRIPTION
  15. The <I>pbmplus</I> toolkit allows conversions between image files of
  16. different format.  By means of using common intermediate formats, only
  17. <!-- MATH
  18.  $2 \times N$
  19. 2×<I>N</I> conversion filters are required to support <I>N</I> distinct formats,
  20. instead of the <I>N</I><SUP>2</SUP> which would be required to convert directly between
  21. any one format and any other.  The package also includes simple tools for
  22. manipulating portable bitmaps.
  23. The package consists of four upwardly compatible sections:
  24.   STYLE="" SRC="img1.png"
  25.  ALT="\begin{TPlist}{pbm}
  26. \item[{pbm}]
  27. Supports monochrome bitmaps (1 bit per pixel).
  28. and \lq\lq promotes'' a file to a higher format, it informs the user).
  29. \end{TPlist}">
  30. DESCRIPTION OF CONTENTS
  31.   STYLE="" SRC="img2.png"
  32.  ALT="\begin{TPlist}{{\it cmuwmtopbm}}
  33. \item[{{\it atktopbm}}]
  34. convert Andrew Toolkit ...
  35. ...{{\it xwdtopnm}}]
  36. convert X10 or X11 window dump to portable anymap
  37. \end{TPlist}">
  38. SEE ALSO
  39. There are a number of related image-manipulation tools:
  40.   STYLE="" SRC="img3.png"
  41.  ALT="\begin{TPlist}{{\it Fuzzy Pixmap Manipulation}}
  42. \item[{{\it IM Raster Toolkit}}]...
  43. ...by {\it
  44. ftp} as {\it uunet.uu.net: graphics/jpeg/jpegsrc.v4.tar.Z}.
  45. \end{TPlist}">
  46. libpbm(3), libpgm(3), libpnm(3), libppm(3), pbm(5), pgm(5), pnm(5),
  47. ppm(5), rasterfile(1)
  48. AUTHOR
  49. Distribution of 10 December 1991.  ©1989, 1991 by Jef Poskanzer.
  50. Feedback and questions are welcome. Please send them to:
  51.   STYLE="" SRC="img4.png"
  52.  ALT="\begin{IPlist}
  53. \IPitem{{}}
  54. {\nofill
  55. jef@netcom.com
  56. jef@well.sf.ca.us
  57. apple!well!jef
  58. \fill}
  59. \end{IPlist}">
  60. When sending bug reports, always include the output from running any
  61. pbmplus program with the -version flag, including descriptions of the
  62. type of system you are on, the compiler you use, and whether you are
  63. using Makefiles or Imakefiles.
  64. When suggesting new formats or features, please include whatever
  65. documentation you have, and a uuencoded sample.  The response time will
  66. depend upon my schedule and the complexity of the task;  if you need it
  67. right away, or it is a complicated job, you might consider paying me.
  68. The Usenet newsgroup <I>alt.graphics.pixutils</I> is a forum for
  69. discussion of image conversion and editing packages.  Posting queries
  70. there may be better than mailing them to me, since it allows other people
  71. to help provide answers.
  72. Permission to use, copy, modify, and distribute this software and its
  73. documentation for any purpose and without fee is hereby granted, provided
  74. that the above copyright notice appear in all copies and that both that
  75. copyright notice and this permission notice appear in supporting
  76. documentation.  This software is provided ``as is'' without express or
  77. implied warranty.  Thus, you may do what you want with this software.
  78. Build it into your package, steal code from it, whatever.  Just be sure
  79. to let people know where it came from.
  80. atktopbm126 September 1991
  81. atktopbm - convert Andrew Toolkit raster object to portable bitmap
  82. SYNOPSIS
  83. <B>atktopbm</B>
  84. [<I>atkfile</I>]
  85. DESCRIPTION
  86. Reads an Andrew Toolkit raster object as input.
  87. Produces a portable bitmap as output.
  88. SEE ALSO
  89. pbmtoatk(1), pbm(5)
  90. AUTHOR
  91. ©1991 by Bill Janssen.
  92. bioradtopgm128 June 1993
  93. bioradtopgm - convert a Biorad confocal file into a portable graymap
  94. SYNOPSIS
  95. <B>bioradtopgm</B>
  96. [<B>-image#</B>]
  97. [<I>imagedata</I>]
  98. DESCRIPTION
  99. Reads a Biorad confocal file as input.
  100. Produces a portable graymap as output.
  101. If the resulting image is upside down, run it through
  102. <B>pnmflip -tb .</B>
  103. OPTIONS
  104.   STYLE="" SRC="img5.png"
  105.  ALT="\begin{TPlist}{{\bf -image\char93 }}
  106. \item[{{\bf -image\char93 }}]
  107. A Biorad imag...
  108. ...umber of images in the input is printed out. No output is produced.
  109. \end{TPlist}">
  110. A Biorad image may be in word format. If PbmPlus is not compiled with the
  111. ``BIGGRAYS'' flag, word files can not be converted. See the Makefile.
  112. SEE ALSO
  113. pgm(5), pnmflip(1)
  114. AUTHORS
  115. ©1993 by Oliver Trepte (oliver@fysik4.kth.se).
  116. bmptoppm126 Oct 1992
  117. bmptoppm – convert a BMP file into a portable pixmap
  118. SYNOPSIS
  119. <B>bmptoppm</B>
  120. [<I>bmpfile</I>]
  121. DESCRIPTION
  122. Reads a Microsoft Windows or OS/2 BMP file as input.
  123. Produces a portable pixmap as output.
  124. SEE ALSO
  125. ppmtobmp(1),
  126. ppm(5)
  127. AUTHOR
  128. ©1992 by David W. Sanderson.
  129. brushtopbm128 August 1988
  130. brushtopbm - convert a doodle brush file into a portable bitmap
  131. SYNOPSIS
  132. <B>brushtopbm</B>
  133. [<I>brushfile</I>]
  134. DESCRIPTION
  135. Reads a Xerox doodle brush file as input.
  136. Produces a portable bitmap as output.
  137. Note that there is currently no pbmtobrush tool.
  138. SEE ALSO
  139. pbm(5)
  140. AUTHOR
  141. ©1988 by Jef Poskanzer.
  142. cmuwmtopbm115 April 1989
  143. cmuwmtopbm - convert a CMU window manager bitmap into a portable bitmap
  144. SYNOPSIS
  145. <B>cmuwmtopbm</B>
  146. [<I>cmuwmfile</I>]
  147. DESCRIPTION
  148. Reads a CMU window manager bitmap as input.
  149. Produces a portable bitmap as output.
  150. SEE ALSO
  151. pbmtocmuwm(1), pbm(5)
  152. AUTHOR
  153. ©1989 by Jef Poskanzer.
  154. fitstopgm120 September 89
  155. fitstopgm - convert a FITS file into a portable graymap
  156. SYNOPSIS
  157. <B>fitstopgm</B>
  158. [<B>-image</B>
  159. <I>N</I>]
  160. [<I>FITSfile</I>]
  161. DESCRIPTION
  162. Reads a FITS file as input.
  163. Produces a portable graymap as output.
  164. The results may need to be flipped top for bottom; if so, just
  165. pipe the output through
  166. <B>pnmflip -tb.</B>
  167. OPTIONS
  168. <B>-image</B>
  169. option is for FITS files with three axes.
  170. The assumption is that the third axis is for multiple images,
  171. and this option lets you select which one you want.
  172. All flags can be abbreviated to their shortest unique prefix.
  173. REFERENCES
  174. FITS stands for Flexible Image Transport System.  A full description
  175. can be found in Astronomy & Astrophysics Supplement Series 44 (1981),
  176. page 363.
  177. SEE ALSO
  178. pgmtofits(1), pgm(5), pnmflip(1)
  179. AUTHOR
  180. ©1989 by Jef Poskanzer.
  181. fstopgm106 April 89
  182. fstopgm - convert a Usenix FaceSaver(tm) file into a portable graymap
  183. SYNOPSIS
  184. <B>fstopgm</B>
  185. [<I>fsfile</I>]
  186. DESCRIPTION
  187. Reads a Usenix FaceSaver(tm) file as input.
  188. Produces a portable graymap as output.
  189. FaceSaver(tm) files sometimes have rectangular pixels.
  190. While
  191. <I>fstopgm</I>
  192. won't re-scale them into square pixels for you,
  193. it will give you the precise
  194. <I>pnmscale</I>
  195. command that will do the job.
  196. Because of this, reading a FaceSaver(tm) image is a two-step process.
  197. First you do:
  198.   fstopgm > /dev/null
  199. This will tell you whether you need to use
  200. <I>pnmscale.</I>
  201. Then use one of the following pipelines:
  202.   fstopgm | pgmnorm
  203.   fstopgm | pnmscale -whatever | pgmnorm
  204. To go to PBM, you want something more like one of these:
  205.   fstopgm | pnmenlarge 3 | pgmnorm | pgmtopbm
  206.   fstopgm | pnmenlarge 3 | pnmscale <whatever> | pgmnorm | pgmtopbm
  207. You want to enlarge when going to a bitmap because otherwise you lose
  208. information; but enlarging by more than 3 does not look good.
  209. FaceSaver is a registered trademark of Metron Computerware Ltd. of
  210. Oakland, CA.
  211. SEE ALSO
  212. pgmtofs(1), pgm(5), pgmnorm(1), pnmenlarge(1), pnmscale(1), pgmtopbm(1)
  213. AUTHOR
  214. ©1989 by Jef Poskanzer.
  215. g3topbm102 October 1989
  216. g3topbm - convert a Group 3 fax file into a portable bitmap
  217. SYNOPSIS
  218. <B>g3topbm</B>
  219. [<B>-kludge</B>]
  220. [<B>-reversebits</B>]
  221. [<B>-stretch</B>]
  222. [<I>g3file</I>]
  223. DESCRIPTION
  224. Reads a Group 3 fax file as input.
  225. Produces a portable bitmap as output.
  226. OPTIONS
  227.   STYLE="" SRC="img6.png"
  228.  ALT="\begin{TPlist}{{\bf -kludge}}
  229. \item[{{\bf -kludge}}]
  230. Tells
  231. {\it g3topbm}
  232. to igno...
  233. ...uplicating each row.
  234. This is for the low-quality transmission mode.
  235. \end{TPlist}">
  236. All flags can be abbreviated to their shortest unique prefix.
  237. REFERENCES
  238. The standard for Group 3 fax is defined in CCITT Recommendation T.4.
  239. Probably.
  240. SEE ALSO
  241. pbmtog3(1), pbm(5)
  242. AUTHOR
  243. ©1989 by Paul Haeberli (paul@manray.sgi.com).
  244. gemtopbm13 December 1988
  245. gemtopbm - convert a GEM .img file into a portable bitmap
  246. SYNOPSIS
  247. <B>gemtopbm</B>
  248. [<B>-d</B>]
  249. <I>gemfile</I>
  250. DESCRIPTION
  251. Reads a GEM .img file as input.
  252. Produces a portable bitmap as output.
  253. OPTIONS
  254.   STYLE="" SRC="img7.png"
  255.  ALT="\begin{TPlist}{{\bf -d}}
  256. \item[{{\bf -d}}]
  257. Produce output describing the contents of the .img file.
  258. \end{TPlist}">
  259. Does not support file containing more than one plane.
  260. Can't read from standard input.
  261. SEE ALSO
  262. pbmtogem(1), pbm(5)
  263. AUTHOR
  264. ©1988 Diomidis D. Spinellis (dds@cc.ic.ac.uk).
  265. giftopnm129 September 1993
  266. giftopnm - convert a GIF file into a portable anymap
  267. SYNOPSIS
  268. <B>giftopnm</B>
  269. [<B>-verbose</B>]
  270. [<B>-comments</B>]
  271. [<B>-image</B>
  272. <I>N</I>]
  273. [<I>GIFfile</I>]
  274. DESCRIPTION
  275. Reads a GIF file for input, and outputs portable anymap.
  276. OPTIONS
  277.   STYLE="" SRC="img8.png"
  278.  ALT="\begin{TPlist}{{\bf -verbose}}
  279. \item[{{\bf -verbose}}]
  280. Produces verbose output a...
  281. ...lly there is only one image per file, so this option
  282. is not needed.
  283. \end{TPlist}">
  284. All flags can be abbreviated to their shortest unique prefix.
  285. This does not correctly handle the Plain Text Extension of the GIF89
  286. standard, since I did not have any example input files containing them.
  287. SEE ALSO
  288. ppmtogif(1), ppm(5)
  289. AUTHOR
  290. ©1993 by David Koblas (koblas@netcom.com)
  291. gouldtoppm120 May 1990
  292. gouldtoppm - convert Gould scanner file into a portable pixmap
  293. SYNOPSIS
  294. <B>gouldtoppm</B>
  295. [<I>gouldfile</I>]
  296. DESCRIPTION
  297. Reads a file produced by the Gould scanner as input.
  298. Produces a portable pixmap as output.
  299. SEE ALSO
  300. ppm(5)
  301. AUTHOR
  302. ©1990 by Stephen Paul Lesniewski.
  303. hipstopgm124 August 89
  304. hipstopgm - convert a HIPS file into a portable graymap
  305. SYNOPSIS
  306. <B>hipstopgm</B>
  307. [<I>hipsfile</I>]
  308. DESCRIPTION
  309. Reads a HIPS file as input.
  310. Produces a portable graymap as output.
  311. If the HIPS file contains more than one frame in sequence, hipstopgm
  312. will concatenate all the frames vertically.
  313. HIPS is a format developed at the Human Information Processing
  314. Laboratory, NYU.
  315. SEE ALSO
  316. pgm(5)
  317. AUTHOR
  318. ©1989 by Jef Poskanzer.
  319. icontopbm131 August 1988
  320. icontopbm - convert a Sun icon into a portable bitmap
  321. SYNOPSIS
  322. <B>icontopbm</B>
  323. [<I>iconfile</I>]
  324. DESCRIPTION
  325. Reads a Sun icon as input.
  326. Produces a portable bitmap as output.
  327. SEE ALSO
  328. pbmtoicon(1), pbm(5)
  329. AUTHOR
  330. ©1988 by Jef Poskanzer.
  331. ilbmtoppm120 June 1993
  332. ilbmtoppm - convert an ILBM file into a portable pixmap
  333. SYNOPSIS
  334. <B>ilbmtoppm</B>
  335. [<B>-verbose</B>]
  336. [<I>ILBMfile</I>]
  337. DESCRIPTION
  338. Reads an IFF ILBM file as input.
  339. Produces a portable pixmap as output.
  340. Supported ILBM types are:
  341.   STYLE="" SRC="img9.png"
  342.  ALT="\begin{TPlist}{Normal ILBMs with 1-16 planes.}
  343. \item[{Normal ILBMs with 1-16 pla...
  344. ...:}]
  345. NAME, AUTH, (c), ANNO, DPI
  346. \item[{Unknown chunks are skipped.}]
  347. \end{TPlist}">
  348. OPTIONS
  349.   STYLE="" SRC="img10.png"
  350.  ALT="\begin{TPlist}{{\bf -verbose}}
  351. \item[{{\bf -verbose}}]
  352. Give some informaton about the ILBM file.
  353. \end{TPlist}">
  354. Probably.
  355. REFERENCES
  356. Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
  357. Addison Wesley, ISBN 0–201–56775–X
  358. SEE ALSO
  359. ppm(5), ppmtoilbm(1)
  360. AUTHORS
  361. ©1989 by Jef Poskanzer.
  362. Modified June 1993 by Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
  363. imgtoppm105 September 1989
  364. imgtoppm - convert an Img-whatnot file into a portable pixmap
  365. SYNOPSIS
  366. <B>imgtoppm</B>
  367. [<I>imgfile</I>]
  368. DESCRIPTION
  369. Reads an Img-whatnot file as input.
  370. Produces a portable pixmap as output.
  371. The Img-whatnot toolkit is available for FTP on venera.isi.edu,
  372. along with numerous images in this format.
  373. SEE ALSO
  374. ppm(5)
  375. AUTHOR
  376. Based on a simple conversion program posted to comp.graphics by Ed Falk.
  377. ©1989 by Jef Poskanzer.
  378. libpbm3
  379. libpbm - functions to support portable bitmap programs
  380. SYNOPSIS
  381. #include <pbm.h>
  382. cc ... libpbm.a
  383. DESCRIPTION - PACKAGE-WIDE ROUTINES
  384. int pm_keymatch( char* str, char* keyword, int minchars )
  385. Does a case-insensitive match of
  386. <B>str</B>
  387. against
  388. <B>keyword</B>.
  389. <B>str</B>
  390. can be a leading sunstring of
  391. <B>keyword</B>,
  392. but at least
  393. <B>minchars</B>
  394. must be present.
  395. int pm_maxvaltobits( int maxval )
  396. int pm_bitstomaxval( int bits )
  397. Convert between a maxval and the minimum number of bits required
  398. to hold it.
  399. void pm_message( char* fmt, ... )
  400. <B>printf()</B>
  401. style routine to write an informational message.
  402. void pm_error( char* fmt, ... )
  403. <B>printf()</B>
  404. style routine to write an error message and abort.
  405. void pm_usage( char* usage )
  406. Write a usage message.
  407. The string should indicate what arguments are to be provided to the program.
  408. FILE* pm_openr( char* name )
  409. Open the given file for reading, with appropriate error checking.
  410. A filename of ``-'' is taken as equivalent to stdin.
  411. FILE* pm_openw( char* name )
  412. Open the given file for writing, with appropriate error checking.
  413. void pm_close( FILE* fp )
  414. Close the file descriptor, with appropriate error checking.
  415. int pm_readbigshort( FILE* in, short* sP )
  416. int pm_writebigshort( FILE* out, short s )
  417. int pm_readbiglong( FILE* in, long* lP )
  418. int pm_writebiglong( FILE* out, long l )
  419. int pm_readlittleshort( FILE* in, short* sP )
  420. int pm_writelittleshort( FILE* out, short s )
  421. int pm_readlittlelong( FILE* in, long* lP )
  422. int pm_writelittlelong( FILE* out, long l )
  423. Routines to read and write short and long ints in either big- or
  424. little-endian byte order.
  425. DESCRIPTION - PBM-SPECIFIC ROUTINES
  426. typedef ... bit;
  427. #define PBM_WHITE ...
  428. #define PBM_BLACK ...
  429. <B>bit</B>
  430. should contain only the values of
  431. <B>PBM_WHITE</B>
  432. <B>PBM_BLACK</B>.
  433. #define PBM_FORMAT ...
  434. #define RPBM_FORMAT ...
  435. #define PBM_TYPE PBM_FORMAT
  436. #define PBM_FORMAT_TYPE(f) ...
  437. For distinguishing different file formats and types.
  438. void pbm_init( int* argcP, char* argv[] )
  439. All PBM programs must call this routine.
  440. bit** pbm_allocarray( int cols, int rows )
  441. Allocate an array of bits.
  442. bit* pbm_allocrow( int cols )
  443. Allocate a row of the given number of bits.
  444. void pbm_freearray( bit** bits, int rows )
  445. Free the array allocated with
  446. <B>pbm_allocarray()</B>
  447. containing the given number
  448. of rows.
  449. void pbm_freerow( bit* bitrow )
  450. Free a row of bits.
  451. void pbm_readpbminit( FILE* fp, int* colsP, int* rowsP, int* formatP )
  452. Read the header from a PBM file, filling in the rows, cols and format
  453. variables.
  454. void pbm_readpbmrow( FILE* fp, bit* bitrow, int cols, int format )
  455. Read a row of bits into the bitrow array.
  456. Format and cols were filled in by
  457. <B>pbm_readpbminit()</B>.
  458. bit** pbm_readpbm( FILE* fp, int* colsP, int* rowsP )
  459. Read an entire bitmap file into memory, returning the allocated array and
  460. filling in the rows and cols variables.
  461. This function combines
  462. <B>pbm_readpbminit()</B>,
  463. <B>pbm_allocarray()</B>
  464. <B>pbm_readpbmrow()</B>.
  465. char* pm_read_unknown_size( FILE* fp, long* nread )
  466. Read an entire file or input stream of unknown size to a buffer.
  467. Allocate memory more memory as needed. The calling routine has
  468. to free the allocated buffer with
  469. <B>free()</B>.
  470. <B>pm_read_unknown_size()</B>
  471. returns a pointer to the allocated buffer. The
  472. <B>nread</B>
  473. argument returns the number of bytes read.
  474. void pbm_writepbminit( FILE* fp, int cols, int rows, int forceplain )
  475. Write the header for a portable bitmap file.
  476. The forceplain flag forces a plain-format file to be written, as opposed
  477. to a raw-format one.
  478. void pbm_writepbmrow( FILE* fp, bit* bitrow, int cols, int forceplain )
  479. Write a row from a portable bitmap.
  480. void pbm_writepbm( FILE* fp, bit** bits, int cols, int rows, int forceplain )
  481. Write the header and all data for a portable bitmap.
  482. This function combines
  483. <B>pbm_writepbminit()</B>
  484. <B>pbm_writepbmrow()</B>.
  485. SEE ALSO
  486. libpgm(3), libppm(3), libpnm(3)
  487. AUTHOR
  488. ©1989, 1991 by Tony Hansen and Jef Poskanzer.
  489. libpgm3
  490. libpgm - functions to support portable graymap programs
  491. SYNOPSIS
  492. #include <pgm.h>
  493. cc ... libpgm.a libpbm.a
  494. DESCRIPTION
  495. typedef ... gray;
  496. #define PGM_MAXMAXVAL ...
  497. extern gray pgm_pbmmaxval;
  498. <B>gray</B>
  499. should contain only the values between
  500. <B>0</B>
  501. <B>PGM_MAXMAXVAL</B>.
  502. <B>pgm_pbmmaxval</B>
  503. is the maxval used when a PGM program reads a PBM file.
  504. Normally it is 1; however, for some programs, a larger value gives better
  505. results.
  506. #define PGM_FORMAT ...
  507. #define RPGM_FORMAT ...
  508. #define PGM_TYPE PGM_FORMAT
  509. int PGM_FORMAT_TYPE( int format )
  510. For distinguishing different file formats and types.
  511. void pgm_init( int* argcP, char* argv[] )
  512. All PGM programs must call this routine.
  513. gray** pgm_allocarray( int cols, int rows )
  514. Allocate an array of grays.
  515. gray* pgm_allocrow( int cols )
  516. Allocate a row of the given number of grays.
  517. void pgm_freearray( gray** grays, int rows )
  518. Free the array allocated with
  519. <B>pgm_allocarray()</B>
  520. containing the given number
  521. of rows.
  522. void pgm_freerow( gray* grayrow )
  523. Free a row of grays.
  524. void pgm_readpgminit( FILE* fp, int* colsP, int* rowsP, gray* maxvalP, int* formatP )
  525. Read the header from a PGM file, filling in the rows, cols, maxval and format
  526. variables.
  527. void pgm_readpgmrow( FILE* fp, gray* grayrow, int cols, gray maxval, int format )
  528. Read a row of grays into the grayrow array.
  529. Format, cols, and maxval were filled in by
  530. <B>pgm_readpgminit()</B>.
  531. gray** pgm_readpgm( FILE* fp, int* colsP, int* rowsP, gray* maxvalP )
  532. Read an entire graymap file into memory, returning the allocated array and
  533. filling in the rows, cols and maxval variables.
  534. This function combines
  535. <B>pgm_readpgminit()</B>,
  536. <B>pgm_allocarray()</B>
  537. <B>pgm_readpgmrow()</B>.
  538. void pgm_writepgminit( FILE* fp, int cols, int rows, gray maxval, int forceplain )
  539. Write the header for a portable graymap file.
  540. The forceplain flag forces a plain-format file to be written, as opposed
  541. to a raw-format one.
  542. void pgm_writepgmrow( FILE* fp, gray* grayrow, int cols, gray maxval, int forceplain )
  543. Write a row from a portable graymap.
  544. void pgm_writepgm( FILE* fp, gray** grays, int cols, int rows, gray maxval, int forceplain )
  545. Write the header and all data for a portable graymap.
  546. This function combines
  547. <B>pgm_writepgminit()</B>
  548. <B>pgm_writepgmrow()</B>.
  549. SEE ALSO
  550. libpbm(3), libppm(3), libpnm(3)
  551. AUTHOR
  552. ©1989, 1991 by Tony Hansen and Jef Poskanzer.
  553. libpnm3
  554. libpnm - functions to support portable anymap programs
  555. SYNOPSIS
  556. #include <pnm.h>
  557. cc ... libpnm.a libppm.a libpgm.a libpbm.a
  558. DESCRIPTION
  559. typedef ... xel;
  560. typedef ... xelval;
  561. #define PNM_MAXMAXVAL ...
  562. extern xelval pnm_pbmmaxval;
  563. <B>xel</B>
  564. contains three
  565. <B>xelval</B>s,
  566. each of which should contain only the values between
  567. <B>0</B>
  568. <B>PNM_MAXMAXVAL</B>.
  569. <B>pnm_pbmmaxval</B>
  570. is the maxval used when a PNM program reads a PBM file.
  571. Normally it is 1; however, for some programs, a larger value gives better
  572. results.
  573. xelval PNM_GET1( xel x )
  574. This macro extracts a single value from an xel, when you know it's
  575. from a PBM or PGM file.
  576. When it's from a PPM file, use
  577. <B>PPM_GETR()</B>,
  578. <B>PPM_GETG()</B>,
  579. <B>PPM_GETB()</B>.
  580. void PNM_ASSIGN1( xel x, xelval v )
  581. This macro assigns a single value to an xel, when you know it's
  582. from a PBM or PGM file.
  583. When it's from a PPM file, use
  584. <B>PPM_ASSIGN()</B>.
  585. int PNM_EQUAL( xel x, xel y )
  586. This macro checks two xels for equality.
  587. int PNM_FORMAT_TYPE( int format )
  588. For distinguishing different file types.
  589. void pnm_init( int* argcP, char* argv[] )
  590. All PNM programs must call this routine.
  591. xel** pnm_allocarray( int cols, int rows )
  592. Allocate an array of xels.
  593. xel* pnm_allocrow( int cols )
  594. Allocate a row of the given number of xels.
  595. void pnm_freearray( xel** xels, int rows )
  596. Free the array allocated with
  597. <B>pnm_allocarray()</B>
  598. containing the given number
  599. of rows.
  600. void pnm_freerow( xel* xelrow )
  601. Free a row of xels.
  602. void pnm_readpnminit( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP )
  603. Read the header from a PNM file, filling in the rows, cols, maxval and format
  604. variables.
  605. void pnm_readpnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format )
  606. Read a row of xels into the xelrow array.
  607. Format, cols, and maxval were filled in by
  608. <B>pnm_readpnminit()</B>.
  609. xel** pnm_readpnm( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP )
  610. Read an entire anymap file into memory, returning the allocated array and
  611. filling in the rows, cols, maxval, and format variables.
  612. This function combines
  613. <B>pnm_readpnminit()</B>,
  614. <B>pnm_allocarray()</B>
  615. <B>pnm_readpnmrow()</B>.
  616. Unlike the equivalent functions in PBM, PGM, and PPM, it returns the format
  617. so you can tell what type the file is.
  618. void pnm_writepnminit( FILE* fp, int cols, int rows, xelval maxval, int format, int forceplain )
  619. Write the header for a portable anymap file.
  620. Unlike the equivalent functions in PBM, PGM, and PPM, you have to specify
  621. the output type.
  622. The forceplain flag forces a plain-format file to be written, as opposed
  623. to a raw-format one.
  624. void pnm_writepnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format, int forceplain )
  625. Write a row from a portable anymap.
  626. void pnm_writepnm( FILE* fp, xel** xels, int cols, int rows, xelval maxval, int format, int forceplain )
  627. Write the header and all data for a portable anymap.
  628. This function combines
  629. <B>pnm_writepnminit()</B>
  630. <B>pnm_writepnmrow()</B>.
  631. void pnm_promoteformatrow( xel* xelrow, int cols, xelval maxval, int format, xelval newmaxval, int newformat )
  632. Promote a row of xels from one maxval and format to a new set.
  633. Used when combining multiple anymaps of different types - just
  634. take the max of the maxvals and the max of the formats, and
  635. promote them all to that.
  636. void pnm_promoteformat( xel** xels, int cols, int rows, xelval maxval, int format, xelval newmaxval, int newformat )
  637. Promote an entire anymap.
  638. xel pnm_whitexel( xelval maxval, int format )
  639. xel pnm_blackxel( xelval maxval, int format )
  640. Return a white or black xel for the given maxval and format.
  641. void pnm_invertxel( xel* x, xelval maxval, int format )
  642. Invert an xel.
  643. xel pnm_backgroundxelrow( xel* xelrow, int cols, xelval maxval, int format )
  644. Figure out an appropriate background xel based on this row.
  645. xel pnm_backgroundxel( xel** xels, int cols, int rows, xelval maxval, int format )
  646. Figure out a background xel based on an entire anymap.
  647. This can do a slightly better job than
  648. <B>pnm_backgroundxelrow()</B>.
  649. SEE ALSO
  650. pbm(3), pgm(3), ppm(3)
  651. AUTHOR
  652. ©1989, 1991 by Tony Hansen and Jef Poskanzer.
  653. libppm3
  654. libppm - functions to support portable pixmap programs
  655. SYNOPSIS
  656. #include <ppm.h>
  657. cc ... libppm.a libpgm.a libpbm.a
  658. DESCRIPTION
  659. typedef ... pixel;
  660. typedef ... pixval;
  661. #define PPM_MAXMAXVAL ...
  662. extern pixval ppm_pbmmaxval;
  663. <B>pixel</B>
  664. contains three
  665. <B>pixval</B>s,
  666. each of which should contain only the values between
  667. <B>0</B>
  668. <B>PPM_MAXMAXVAL</B>.
  669. <B>ppm_pbmmaxval</B>
  670. is the maxval used when a PPM program reads a PBM file.
  671. Normally it is 1; however, for some programs, a larger value gives better
  672. results.
  673. #define PPM_FORMAT ...
  674. #define RPPM_FORMAT ...
  675. #define PPM_TYPE PPM_FORMAT
  676. int PPM_FORMAT_TYPE( int format )
  677. For distinguishing different file formats and types.
  678. pixval PPM_GETR( pixel p )
  679. pixval PPM_GETG( pixel p )
  680. pixval PPM_GETB( pixel p )
  681. These three macros retrieve the red, green or blue value from the given
  682. pixel.
  683. void PPM_ASSIGN( pixel p, pixval red, pixval grn, pixval blu )
  684. This macro assigns the given red, green and blue values to the pixel.
  685. int PPM_EQUAL( pixel p, pixel q )
  686. This macro checks two pixels for equality.
  687. void PPM_DEPTH( pixel newp, pixel p, pixval oldmaxval, pixval newmaxval )
  688. This macro scales the colors of pixel
  689. <B>p</B>
  690. according the old and new maximum values and assigns the new values to
  691. <B>newp</B>.
  692. It is intended to make writing ppmtowhatever easier.
  693. float PPM_LUMIN( pixel p )
  694. This macro determines the luminance of the pixel
  695. <B>p</B>.
  696. pixel** ppm_allocarray( int cols, int rows )
  697. Allocate an array of pixels.
  698. pixel* ppm_allocrow( int cols )
  699. Allocate a row of the given number of pixels.
  700. void ppm_freearray( pixel** pixels, int rows )
  701. Free the array allocated with
  702. <B>ppm_allocarray()</B>
  703. containing the given number
  704. of rows.
  705. void pbm_freerow( pixel* pixelrow )
  706. Free a row of pixels.
  707. void ppm_readppminit( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP, int* formatP )
  708. Read the header from a PPM file, filling in the rows, cols, maxval and format
  709. variables.
  710. void ppm_readppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int format )
  711. Read a row of pixels into the pixelrow array.
  712. Format, cols, and maxval were filled in by
  713. <B>ppm_readppminit()</B>.
  714. pixel** ppm_readppm( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP )
  715. Read an entire pixmap file into memory, returning the allocated array and
  716. filling in the rows, cols and maxval variables.
  717. This function combines
  718. <B>ppm_readppminit()</B>,
  719. <B>ppm_allocarray()</B>
  720. <B>ppm_readppmrow()</B>.
  721. void ppm_writeppminit( FILE* fp, int cols, int rows, pixval maxval, int forceplain )
  722. Write the header for a portable pixmap file.
  723. The forceplain flag forces a plain-format file to be written, as opposed
  724. to a raw-format one.
  725. void ppm_writeppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int forceplain )
  726. Write a row from a portable pixmap.
  727. void ppm_writeppm( FILE* fp, pixel** pixels, int cols, int rows, pixval maxval, int forceplain )
  728. Write the header and all data for a portable pixmap.
  729. This function combines
  730. <B>ppm_writeppminit()</B>
  731. <B>ppm_writeppmrow()</B>.
  732. pixel ppm_parsecolor( char* colorname, pixval maxval )
  733. Parses an ASCII color name into a pixel.
  734. The color can be specified in three ways.  One, as a name, assuming
  735. that a pointer to an X11-style color names file was compiled in.  Two,
  736. as an X11-style hexadecimal number: #rgb, #rrggbb, #rrrgggbbb, or
  737. #rrrrggggbbbb.  Three, as a triplet of decimal floating point numbers
  738. separated by commas: r.r,g.g,b.b.
  739. char* ppm_colorname( pixel* colorP, pixval maxval, int hexok )
  740. Returns a pointer to a string describing the given color.
  741. If the X11 color names file is available and the color appears in
  742. it, that name is returned.
  743. Otherwise, if the hexok flag is true then a hexadecimal colorspec
  744. is returned; if hexok is false and the X11 color names file is
  745. available, then the closest matching color is returned;
  746. otherwise, it's an error.
  747. SEE ALSO
  748. pbm(3), pgm(3)
  749. AUTHOR
  750. ©1989, 1991 by Tony Hansen and Jef Poskanzer.
  751. lispmtopgm106 March 1990
  752. lispmtopgm - convert a Lisp Machine bitmap file into pgm format
  753. SYNOPSIS
  754. <B>lispmtopgm</B>
  755. [<I>lispmfile</I>]
  756. DESCRIPTION
  757. Reads a Lisp Machine bitmap as input.
  758. Produces a portable graymap as output.
  759. This is the file format written by the tv:write-bit-array-file function on
  760. TI Explorer and Symbolics lisp machines.
  761. Multi-plane bitmaps on lisp machines are color; but the lispm image file
  762. format does not include a color map, so we must treat it as a graymap 
  763. instead.  This is unfortunate.
  764. SEE ALSO
  765. pgmtolispm(1), pgm(5)
  766. The Lispm bitmap file format is a bit quirky;  Usually the image in the file
  767. has its width rounded up to the next higher multiple of 32, but not always.
  768. If the width is not a multiple of 32, we don't deal with it properly, but 
  769. because of the Lispm microcode, such arrays are probably not image data 
  770. anyway.
  771. Also, the lispm code for saving bitmaps has a bug, in that if you are writing a
  772. bitmap which is not mod32 across, the file may be up to 7 bits too short!  They
  773. round down instead of up, and we don't handle this bug gracefully.
  774. No color.
  775. AUTHOR
  776. ©1991 by Jamie Zawinski and Jef Poskanzer.
  777. macptopbm129 March 1989
  778. macptopbm - convert a MacPaint file into a portable bitmap
  779. SYNOPSIS
  780. <B>macptopbm</B>
  781. [<B>-extraskip</B>
  782. <I>N</I>]
  783. [<I>macpfile</I>]
  784. DESCRIPTION
  785. Reads a MacPaint file as input.
  786. Produces a portable bitmap as output.
  787. OPTIONS
  788.   STYLE="" SRC="img11.png"
  789.  ALT="\begin{TPlist}{{\bf -extraskip}}
  790. \item[{{\bf -extraskip}}]
  791. This flag is to get a...
  792. ...askip}
  793. 128, and if that still doesn't look right try another value.
  794. \end{TPlist}">
  795. All flags can be abbreviated to their shortest unique prefix.
  796. SEE ALSO
  797. picttoppm(1), pbmtomacp(1), pbm(5)
  798. AUTHOR
  799. ©1988 by Jef Poskanzer.
  800. The MacPaint-reading code is ©1987 by Patrick J. Naughton
  801. (naughton@wind.sun.com).
  802. mgrtopbm124 January 1989
  803. mgrtopbm - convert a MGR bitmap into a portable bitmap
  804. SYNOPSIS
  805. <B>mgrtopbm</B>
  806. [<I>mgrfile</I>]
  807. DESCRIPTION
  808. Reads a MGR bitmap as input.
  809. Produces a portable bitmap as output.
  810. SEE ALSO
  811. pbmtomgr(1), pbm(5)
  812. AUTHOR
  813. ©1989 by Jef Poskanzer.
  814. mtvtoppm102 February 1989
  815. mtvtoppm - convert output from the MTV or PRT ray tracers into a portable pixmap
  816. SYNOPSIS
  817. <B>mtvtoppm</B>
  818. [<I>mtvfile</I>]
  819. DESCRIPTION
  820. Reads an input file from Mark VanDeWettering's MTV ray tracer.
  821. Produces a portable pixmap as output.
  822. The PRT raytracer also produces this format.
  823. SEE ALSO
  824. ppm(5)
  825. AUTHOR
  826. ©1989 by Jef Poskanzer.
  827. pbm527 September 1991
  828. pbm - portable bitmap file format
  829. DESCRIPTION
  830. The portable bitmap format is a lowest common denominator monochrome
  831. file format.
  832. It was originally designed to make it reasonable to mail bitmaps
  833. between different types of machines using the typical stupid network
  834. mailers we have today.
  835. Now it serves as the common language of a large family of bitmap
  836. conversion filters.
  837. The definition is as follows:
  838.   STYLE="" SRC="img12.png"
  839.  ALT="\begin{IPlist}
  840. \IPitem{{-}}
  841. A \lq\lq magic number'' for identifying the file type.
  842. A ...
  843. ...omments).
  844. \IPitem{{-}}
  845. No line should be longer than 70 characters.
  846. \end{IPlist}">
  847. Here is an example of a small bitmap in this format:
  848. # feep.pbm
  849. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  850. 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
  851. 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
  852. 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
  853. 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
  854. 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
  855. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  856. Programs that read this format should be as lenient as possible,
  857. accepting anything that looks remotely like a bitmap.
  858. There is also a variant on the format, available
  859. by setting the RAWBITS option at compile time.  This variant is
  860. different in the following ways:
  861.   STYLE="" SRC="img13.png"
  862.  ALT="\begin{IPlist}
  863. \IPitem{{-}}
  864. The \lq\lq magic number'' is \lq\lq P4'' instead of \lq\lq P1''.
  865. \I...
  866. ...es are eight times smaller and many times faster to read and write.
  867. \end{IPlist}">
  868. SEE ALSO
  869. atktopbm(1), brushtopbm(1), cmuwmtopbm(1), g3topbm(1),
  870. gemtopbm(1), icontopbm(1),
  871. macptopbm(1), mgrtopbm(1), pi3topbm(1), xbmtopbm(1),
  872. ybmtopbm(1),
  873. pbmto10x(1), pnmtoascii(1), pbmtoatk(1), pbmtobbnbg(1),
  874. pbmtocmuwm(1), pbmtoepson(1),
  875. pbmtog3(1), pbmtogem(1), pbmtogo(1), pbmtoicon(1), pbmtolj(1),
  876. pbmtomacp(1), pbmtomgr(1), pbmtopi3(1), pbmtoplot(1), pbmtoptx(1),
  877. pbmtox10bm(1), pbmtoxbm(1), pbmtoybm(1),
  878. pbmtozinc(1),
  879. pbmlife(1), pbmmake(1), pbmmask(1), pbmreduce(1),
  880. pbmtext(1), pbmupc(1),
  881. pnm(5), pgm(5), ppm(5)
  882. AUTHOR
  883. ©1989, 1991 by Jef Poskanzer.
  884. pbmclean12 Dec 1990
  885. pbmclean - flip isolated pixels in portable bitmap
  886. SYNOPSIS
  887. pbmclean [-connect] [pbmfile]
  888. DESCRIPTION
  889. Reads a portable bitmap as input. Outputs a portable bitmap with every 
  890. pixel which has less than <I>connect </I>identical neighbours inverted.
  891. Pbmclean can be used to clean up ``snow'' on bitmap images.
  892. SEE ALSO
  893. pbm(5)
  894. AUTHOR
  895. ©1990 by Angus Duggan.
  896. ©1989 by Jef Poskanzer.
  897. Permission to use, copy, modify, and distribute this software and its
  898. documentation for any purpose and without fee is hereby granted, provided
  899. that the above copyright notice appear in all copies and that both that
  900. copyright notice and this permission notice appear in supporting
  901. documentation.  This software is provided "as is" without express or
  902. implied warranty.
  903. pbmlife121 February 1991
  904. pbmlife - apply Conway's rules of Life to a portable bitmap
  905. SYNOPSIS
  906. <B>pbmlife</B>
  907. [<I>pbmfile</I>]
  908. DESCRIPTION
  909. Reads a portable bitmap as input.
  910. Applies the rules of Life to it for one generation,
  911. and produces a portable bitmap as output.
  912. A white pixel in the image is interpreted as a live beastie, and a
  913. black pixel as an empty space.
  914. SEE ALSO
  915. pbm(5)
  916. AUTHOR
  917. ©1988, 1991 by Jef Poskanzer.
  918. pbmmake122 February 1989
  919. pbmmake - create a blank bitmap of a specified size
  920. SYNOPSIS
  921. <B>pbmmake</B>
  922. [<B>-white</B>|<B>-black</B>|<B>-gray</B>
  923. <I>width height</I>
  924. DESCRIPTION
  925. Produces a portable bitmap of the specified width and height.
  926. The color defaults to white.
  927. OPTIONS
  928. In addition to the usual
  929. <B>-white</B>
  930. <B>-black</B>,
  931. this program implements
  932. <B>-gray</B>.
  933. This gives a simple 50% gray pattern with 1's and 0's alternating.
  934. All flags can be abbreviated to their shortest unique prefix.
  935. SEE ALSO
  936. pbm(5), ppmmake(1)
  937. AUTHOR
  938. ©1989 by Jef Poskanzer.
  939. pbmmask108 August 1989
  940. pbmmask - create a mask bitmap from a regular bitmap
  941. SYNOPSIS
  942. <B>pbmmask</B>
  943. [<B>-expand</B>]
  944. [<I>pbmfile</I>]
  945. DESCRIPTION
  946. Reads a portable bitmap as input.
  947. Creates a corresponding mask bitmap and writes it out.
  948. The color to be interpreted as ``background'' is determined automatically.
  949. Regardless of which color is background, the mask will be white where
  950. the background is and black where the figure is.
  951. This lets you do a masked paste like this, for objects with a black background:
  952.     pbmmask obj > objmask
  953.     pnmpaste < dest -and objmask <x> <y> | pnmpaste -or obj <x> <y>
  954. For objects with a white background, you can either invert them or
  955. add a step:
  956.     pbmmask obj > objmask
  957.     pnminvert objmask | pnmpaste -and obj 0 0 > blackback
  958.     pnmpaste < dest -and objmask <x> <y> | pnmpaste -or blackback <x> <y>
  959. Note that this three-step version works for objects with black backgrounds
  960. too, if you don't care about the wasted time.
  961. You can also use masks with graymaps and pixmaps, using the
  962. <I>pnmarith</I>
  963. tool.  For instance:
  964.     ppmtopgm obj.ppm | pgmtopbm -threshold | pbmmask > objmask.pbm
  965.     pnmarith -multiply dest.ppm objmask.pbm > t1.ppm
  966.     pnminvert objmask.pbm | pnmarith -multiply obj.ppm - > t2.ppm
  967.     pnmarith -add t1.ppm t2.ppm
  968. An interesting variation on this is to pipe the mask through the
  969. <I>pnmsmooth</I>
  970. script before using it.  This makes the boundary between the two images less
  971. sharp.
  972.   STYLE="" SRC="img14.png"
  973.  ALT="\begin{TPlist}{{\bf -expand}}
  974. \item[{{\bf -expand}}]
  975. Expands the mask by one pix...
  976. ...n the
  977. {\it pbmlife}
  978. tool into a general cellular automaton tool...)
  979. \end{TPlist}">
  980. SEE ALSO
  981. pnmpaste(1), pnminvert(1), pbm(5), pnmarith(1), pnmsmooth(1)
  982. AUTHOR
  983. ©1988 by Jef Poskanzer.
  984. pbmpscale12 Dec 1990
  985. pbmpscale - enlarge a portable bitmap with edge smoothing
  986. SYNOPSIS
  987. pbmpscale N [ pbmfile ]
  988. DESCRIPTION
  989. Reads a portable bitmap as input, and outputs a portable bitmap
  990. enlarged N times. Enlargement is done by pixel replication,
  991. with some additional smoothing of corners and edges.
  992. SEE ALSO
  993. pnmenlarge(1), ppmscale(1), pbm(5)
  994. AUTHOR
  995. ©1990 by Angus Duggan.
  996. ©1989 by Jef Poskanzer.
  997. Permission to use, copy, modify, and distribute this software and its
  998. documentation for any purpose and without fee is hereby granted, provided
  999. that the above copyright notice appear in all copies and that both that
  1000. copyright notice and this permission notice appear in supporting
  1001. documentation.  This software is provided "as is" without express or
  1002. implied warranty.
  1003. NOTES
  1004. pbmpscale works best for enlargements of 2. Enlargements greater than 2
  1005. should be done by as many enlargements of 2 as possible, followed by an
  1006. enlargement by the remaining factor.
  1007. pbmreduce102 August 1989
  1008. pbmreduce - read a portable bitmap and reduce it N times
  1009. SYNOPSIS
  1010. <B>pbmreduce</B>
  1011. [<B>-floyd</B>|<B>-fs</B>|<B>-threshold</B>
  1012. [<B>-value</B>
  1013. <I>val</I>]
  1014. <I>N</I>
  1015. [<I>pbmfile</I>]
  1016. DESCRIPTION
  1017. Reads a portable bitmap as input.
  1018. Reduces it by a factor of
  1019. <I>N</I>,
  1020. and produces a portable bitmap as output.
  1021. <I>pbmreduce</I>
  1022. duplicates a lot of the functionality of
  1023. <I>pgmtopbm;</I>
  1024. you could do something like
  1025. <B>pnmscale | pgmtopbm,</B>
  1026. <I>pbmreduce</I>
  1027. is a lot faster.
  1028. <I>pbmreduce</I>
  1029. can be used to ``re-halftone'' an image.
  1030. Let's say you have a scanner that only produces black&white, not
  1031. grayscale, and it does a terrible job of halftoning (most b&w scanners
  1032. fit this description).
  1033. One way to fix the halftoning is to scan at the highest possible
  1034. resolution, say 300 dpi, and then reduce by a factor of three or
  1035. so using
  1036. <I>pbmreduce</I>.
  1037. You can even correct the brightness of an image, by using the
  1038. <B>-value</B>
  1039. flag.
  1040. OPTIONS
  1041. By default, the halftoning after the reduction is done via
  1042. boustrophedonic Floyd-Steinberg error diffusion; however, the
  1043. <B>-threshold</B>
  1044. flag can be used to specify simple thresholding.  This gives better
  1045. results when reducing line drawings.
  1046. <B>-value</B>
  1047. flag alters the thresholding value for all quantizations.
  1048. It should be a real number between 0 and 1.
  1049. Above 0.5 means darker images; below 0.5 means lighter.
  1050. All flags can be abbreviated to their shortest unique prefix.
  1051. SEE ALSO
  1052. pnmenlarge(1), pnmscale(1), pgmtopbm(1), pbm(5)
  1053. AUTHOR
  1054. ©1988 by Jef Poskanzer.
  1055. pbmtext15 January 1991
  1056. pbmtext - render text into a bitmap
  1057. SYNOPSIS
  1058. <B>pbmtext</B>
  1059. [<B>-font</B>
  1060. <I>fontfile</I>]
  1061. [<I>text</I>]
  1062. DESCRIPTION
  1063. Takes the specified text, either a single line from the command
  1064. line or multiple lines from standard input, and renders it
  1065. into a bitmap.
  1066. OPTIONS
  1067. By default, pbmtext uses a built-in font.
  1068. You can also specify your own font with the
  1069. <B>-font</B>
  1070. flag.
  1071. <I>fontfile</I>
  1072. is a pbm file, created in a very specific way.
  1073. In your window system of choice, display the following text
  1074. in the desired (fixed-width) font:
  1075. M ",/ˆ_[`jpqy| M
  1076. /  !"#$%&'()*+ /
  1077.     < ,-./01234567 <
  1078.     > 89:;<=>?@ABC >
  1079.     @ DEFGHIJKLMNO @
  1080.     _ PQRSTUVWXYZ[ _
  1081.     { ]ˆ_`abcdefg {
  1082.     } hijklmnopqrs }
  1083.     ˜ tuvwxyz{|}˜  ˜
  1084. M ",/ˆ_[`jpqy| M
  1085. Do a screen grab or window dump of that text, using for instance
  1086. <I>xwd</I>,
  1087. <I>xgrabsc</I>,
  1088. <I>screendump</I>.
  1089. Convert the result into a pbm file.
  1090. If necessary, use
  1091. <I>pnmcut</I>
  1092. to remove everything except the text.
  1093. Finally, run it through
  1094. <I>pnmcrop</I>
  1095. to make sure the edges are right up against the text.
  1096. <I>pbmtext</I>
  1097. can figure out the sizes and spacings from that.
  1098. SEE ALSO
  1099. pbm(5), pnmcut(1), pnmcrop(1)
  1100. AUTHOR
  1101. ©1991 by Jef Poskanzer.
  1102. pbmto10x11 January 1990
  1103. pbmto10x - convert a portable bitmap into Gemini 10X printer graphics
  1104. SYNOPSIS
  1105. <B>pbmto10x</B>
  1106. [<B>-h</B>]
  1107. [<I>pbmfile</I>]
  1108. DESCRIPTION
  1109. Reads a portable bitmap as input.
  1110. Produces a file of Gemini 10X printer graphics as output.
  1111. The 10x's printer codes are alleged to be similar to the Epson codes.
  1112. Note that there is no 10xtopbm tool - this transformation is one way.
  1113. OPTIONS
  1114. The resolution is normally 60H by 72V.
  1115. If the
  1116. <B>-h</B>
  1117. flag is specified, resolution is 120H by 144V.
  1118. You may find it useful to rotate landscape images before printing.
  1119. SEE ALSO
  1120. pbm(5)
  1121. AUTHOR
  1122. ©1990 by Ken Yap.
  1123. pbmtoascii120 March 1992
  1124. pbmtoascii - convert a portable bitmap into ASCII graphics
  1125. SYNOPSIS
  1126. <B>pbmtoascii</B>
  1127. [<B>-1x2</B>|<B>-2x4</B>]
  1128. [<I>pbmfile</I>]
  1129. DESCRIPTION
  1130. Reads a portable bitmap as input.
  1131. Produces a somewhat crude ASCII graphic as output.
  1132. Note that there is no asciitopbm tool - this transformation is one-way.
  1133. OPTIONS
  1134. <B>-1x2</B>
  1135. <B>-2x4</B>
  1136. flags give you two alternate ways for the bits to get mapped to characters.
  1137. <B>1x2</B>,
  1138. the default, each character represents a group of 1 bit across by 2 bits down.
  1139. <B>-2x4</B>,
  1140. each character represents 2 bits across by 4 bits down.
  1141. With the 1x2 mode you can see the individual bits, so it's useful for
  1142. previewing small bitmaps on a non-graphics terminal.
  1143. The 2x4 mode lets you display larger bitmaps on a standard 80-column display,
  1144. but it obscures bit-level details.
  1145. 2x4 mode is also good for displaying
  1146. graymaps - ``pnmscale -width 158 | pgmnorm | pgmtopbm -thresh''
  1147. should give good results.
  1148. SEE ALSO
  1149. pbm(5)
  1150. AUTHOR
  1151. ©1988, 1992 by Jef Poskanzer.
  1152. pbmtoatk126 September 1991
  1153. pbmtoatk - convert portable bitmap to Andrew Toolkit raster object
  1154. SYNOPSIS
  1155. <B>pbmtoatk</B>
  1156. [<I>pbmfile</I>]
  1157. DESCRIPTION
  1158. Reads a portable bitmap as input.
  1159. Produces a Andrew Toolkit raster object as output.
  1160. SEE ALSO
  1161. atktopbm(1), pbm(5)
  1162. AUTHOR
  1163. ©1991 by Bill Janssen.
  1164. pbmtobg116 May 1989
  1165. pbmtobg - convert a portable bitmap into BitGraph graphics
  1166. SYNOPSIS
  1167. <B>pbmtobg</B>
  1168. [<I>rasterop</I>]
  1169. [<I>x</I>
  1170. <I>y</I>]
  1171. <I>pbmfile</I>
  1172. DESCRIPTION
  1173. Reads a portable bitmap as input.
  1174. Produces BBN BitGraph terminal Display Pixel Data (DPD) sequence as output.
  1175. The rasterop can be specified on the command line.  If this is omitted, 3
  1176. (replace) will be used.  A position in (x,y) coordinates can also be
  1177. specified.  If both are given, the rasterop comes first.  The portable bitmap
  1178. is always taken from the standard input.
  1179. Note that there is no bgtopbm tool.
  1180. SEE ALSO
  1181. pbm(5)
  1182. AUTHOR
  1183. Copyright 1989 by Mike Parker.
  1184. pbmtocmuwm115 April 1989
  1185. pbmtocmuwm - convert a portable bitmap into a CMU window manager bitmap
  1186. SYNOPSIS
  1187. <B>pbmtocmuwm</B>
  1188. [<I>pbmfile</I>]
  1189. DESCRIPTION
  1190. Reads a portable bitmap as input.
  1191. Produces a CMU window manager bitmap as output.
  1192. SEE ALSO
  1193. cmuwmtopbm(1), pbm(5)
  1194. AUTHOR
  1195. ©1989 by Jef Poskanzer.
  1196. pbmtoepsi11992
  1197. pbmtoepsi - convert a portable bitmap into an encapsulated PostScript
  1198. style preview bitmap
  1199. SYNOPSIS
  1200. <B>pbmtoepsi</B>
  1201. [<B>-bbonly</B>]
  1202. [<I>pbmfile</I>]
  1203. DESCRIPTION
  1204. Reads a portable bitmap as input.
  1205. Produce an encapsulated Postscript style bitmap as output. The output
  1206. is not a stand alone postscript file, it is only a preview bitmap,
  1207. which can be included in an encapsulated PostScript file.
  1208. Note that there is no epsitopbm tool - this transformation is one way.
  1209. This utility is a part of the pstoepsi tool by Doug Crabill
  1210. (dgc@cs.purdue.edu).
  1211. OPTIONS
  1212.   STYLE="" SRC="img15.png"
  1213.  ALT="\begin{TPlist}{{\bf -bbonly}}
  1214. \item[{{\bf -bbonly}}]
  1215. Only create a boundary box, don't fill it with the image.
  1216. \end{TPlist}">
  1217. SEE ALSO
  1218. pbm(5), pnmtops(1), psidtopgm(1)
  1219. AUTHOR
  1220. ©1988 Jef Poskanzer
  1221. modified by Doug Crabill 1992.
  1222. pbmtoepson14 January 1991
  1223. pbmtoepson - convert a portable bitmap into Epson printer graphics
  1224. SYNOPSIS
  1225. <B>pbmtoepson</B>
  1226. [<I>pbmfile</I>]
  1227. DESCRIPTION
  1228. Reads a portable bitmap as input.
  1229. Produces a file of Epson printer graphics as output.
  1230. Note that there is no epsontopbm tool - this transformation is one way.
  1231. SEE ALSO
  1232. pbm(5)
  1233. AUTHOR
  1234. ©1991 by John Tiller (tiller@galois.msfc.nasa.gov) and Jef Poskanzer.
  1235. pbmtog3102 October 1989
  1236. pbmtog3 - convert a portable bitmap into a Group 3 fax file
  1237. SYNOPSIS
  1238. <B>pbmtog3</B>
  1239. [<I>pbmfile</I>]
  1240. DESCRIPTION
  1241. Reads a portable bitmap as output.
  1242. Produces a Group 3 fax file as input.
  1243. REFERENCES
  1244. The standard for Group 3 fax is defined in CCITT Recommendation T.4.
  1245. Probably.
  1246. SEE ALSO
  1247. g3topbm(1), pbm(5)
  1248. AUTHOR
  1249. ©1989 by Paul Haeberli (paul@manray.sgi.com).
  1250. pbmtogem111 March 1990
  1251. pbmtogem - convert a portable bitmap into a GEM .img file
  1252. SYNOPSIS
  1253. <B>pbmtogem</B>
  1254. [<I>pbmfile</I>]
  1255. DESCRIPTION
  1256. Reads a portable bitmap as input.
  1257. Produces a GEM .img file as output.
  1258. It does not support compression of the data.
  1259. SEE ALSO
  1260. gemtopbm(1), pbm(5)
  1261. AUTHOR
  1262. ©1988 by David Beckemeyer (bdt!david) and Jef Poskanzer.
  1263. pbmtogo124 November 1989
  1264. pbmtogo - convert a portable bitmap into compressed GraphOn graphics
  1265. SYNOPSIS
  1266. <B>pbmtogo</B>
  1267. [<I>pbmfile</I>]
  1268. DESCRIPTION
  1269. Reads a portable bitmap as input.
  1270. Produces 2D compressed GraphOn graphics as output.
  1271. Be sure to set up your GraphOn with the following modes: 8 bits / no parity;
  1272. obeys no XON/XOFF; NULs are accepted.  These are all on the Comm menu.
  1273. Also, remember to turn off tty post processing.
  1274. Note that there is no gotopbm tool.
  1275. SEE ALSO
  1276. pbm(5)
  1277. AUTHOR
  1278. ©1988, 1989 by Jef Poskanzer, Michael Haberler, and Bo Thide'.
  1279. pbmtoicon131 August 1988
  1280. pbmtoicon - convert a portable bitmap into a Sun icon
  1281. SYNOPSIS
  1282. <B>pbmtoicon</B>
  1283. [<I>pbmfile</I>]
  1284. DESCRIPTION
  1285. Reads a portable bitmap as input.
  1286. Produces a Sun icon as output.
  1287. SEE ALSO
  1288. icontopbm(1), pbm(5)
  1289. AUTHOR
  1290. ©1988 by Jef Poskanzer.
  1291. pbmtolj129 August 1988
  1292. pbmtolj - convert a portable bitmap into HP LaserJet format
  1293. SYNOPSIS
  1294. <B>pbmtolj</B>
  1295. [<B>-resolution</B>
  1296. <I>N</I>]
  1297. [<I>pbmfile</I>]
  1298. DESCRIPTION
  1299. Reads a portable bitmap as input.
  1300. Produces HP LaserJet data as output.
  1301. Note that there is no ljtopbm tool.
  1302. OPTIONS
  1303.   STYLE="" SRC="img16.png"
  1304.  ALT="\begin{TPlist}{{\bf -resolution}}
  1305. \item[{{\bf -resolution}}]
  1306. Specifies the resol...
  1307. ...e, in dpi.
  1308. Typical values are 75, 100, 150, 300.
  1309. The default is 75.
  1310. \end{TPlist}">
  1311. All flags can be abbreviated to their shortest unique prefix.
  1312. SEE ALSO
  1313. pbm(5)
  1314. AUTHOR
  1315. ©1988 by Jef Poskanzer and Michael Haberler.
  1316. pbmtoln0317 May 1993
  1317. pbmtoln03 - convert protable bitmap to DEC LN03+ Sixel output
  1318. SYNOPSIS
  1319. <B>pbmtoln03</B>
  1320. [<B>-rltbf</B>]
  1321. <I>pbmfile</I>
  1322. DESCRIPTION
  1323. Reads a portable bitmap as input.
  1324. Produces a DEC LN03+ Sixel output file.
  1325. OPTIONS
  1326.   STYLE="" SRC="img17.png"
  1327.  ALT="\begin{TPlist}{{\bf -l nn}}
  1328. \item[{{\bf -l nn}}]
  1329. Use \lq\lq nn'' as value for left ma...
  1330. ...[{{\bf -f nn}}]
  1331. Use \lq\lq nn'' as value for form length (default 3400).
  1332. \end{TPlist}">
  1333. SEE ALSO
  1334. pbm(5)
  1335. AUTHOR
  1336. Tim Cook, 26 Feb 1992
  1337. pbmtolps12 Dec 1990
  1338. pbmtolps - convert portable bitmap to PostScript
  1339. SYNOPSIS
  1340. pbmtolps [ -dpi n ] [ pbmfile ]
  1341. DESCRIPTION
  1342. Reads a portable bitmap as input, and outputs PostScript.
  1343. The output Postscript uses lines instead of the image operator to
  1344. generate a (device dependent) picture which will be imaged
  1345. much faster.
  1346. The Postscript path length is constrained to be less that 1000
  1347. points so that no limits are overrun on the Apple Laserwriter
  1348. and (presumably) no other printers.
  1349. SEE ALSO
  1350. pgmtops(1), ppmtops(1), pbm(5)
  1351. AUTHOR
  1352. ©George Phillips (phillips@cs.ubc.ca).
  1353. pbmtomacp131 August 1988
  1354. pbmtomacp - convert a portable bitmap into a MacPaint file
  1355. SYNOPSIS
  1356. <B>pbmtomacp</B>
  1357. [<B>-l</B>
  1358. <I>left</I>]
  1359. [<B>-r</B>
  1360. <I>right</I>]
  1361. [<B>-b</B>
  1362. <I>bottom</I>]
  1363. [<B>-t</B>
  1364. <I>top</I>]
  1365. [<I>pbmfile</I>]
  1366. DESCRIPTION
  1367. Reads a portable bitmap as input.
  1368. If no input-file is given, standard input is assumed.
  1369. Produces a MacPaint file as output.
  1370. The generated file is only the data fork of a picture.
  1371. You will need a program such as
  1372. <I>mcvert</I>
  1373. to generate a Macbinary or a BinHex file that contains the necessary
  1374. information to identify the file as a PNTG file to MacOS.
  1375. OPTIONS
  1376. Left, right, bottom & top let you define a square into the pbm file,
  1377. that must be converted.
  1378. Default is the whole file.
  1379. If the file is too large for a MacPaint-file, the bitmap is cut to fit
  1380. from ( left, top ).
  1381. The source code contains comments in a language other than English.
  1382. SEE ALSO
  1383. ppmtopict(1), macptopbm(1), pbm(5), mcvert(1)
  1384. AUTHOR
  1385. ©1988 by Douwe van der Schaaf (…!mcvax!uvapsy!vdschaaf).
  1386. pbmtomgr124 January 1989
  1387. pbmtomgr - convert a portable bitmap into a MGR bitmap
  1388. SYNOPSIS
  1389. <B>pbmtomgr</B>
  1390. [<I>pbmfile</I>]
  1391. DESCRIPTION
  1392. Reads a portable bitmap as input.
  1393. Produces a MGR bitmap as output.
  1394. SEE ALSO
  1395. mgrtopbm(1), pbm(5)
  1396. AUTHOR
  1397. ©1989 by Jef Poskanzer.
  1398. pbmtopgm12 Dec 1990
  1399. pbmtopgm - convert portable bitmap to portable graymap by averaging areas
  1400. SYNOPSIS
  1401. pbmtopgm <width> <height> [pbmfile]
  1402. DESCRIPTION
  1403. Reads a portable bitmap as input. Outputs a portable graymap created by
  1404. averaging the number of pixels within a sample area of
  1405. <I>width </I>by <I>height </I>around each point. Pbmtopgm is similar to a
  1406. special case of ppmconvol. A ppmsmooth step may be needed after pbmtopgm.
  1407. Pbmtopgm has the effect of anti-aliasing bitmaps which contain distinct
  1408. line features.
  1409. SEE ALSO
  1410. pbm(5)
  1411. AUTHOR
  1412. ©1990 by Angus Duggan.
  1413. ©1989 by Jef Poskanzer.
  1414. Permission to use, copy, modify, and distribute this software and its
  1415. documentation for any purpose and without fee is hereby granted, provided
  1416. that the above copyright notice appear in all copies and that both that
  1417. copyright notice and this permission notice appear in supporting
  1418. documentation.  This software is provided "as is" without express or
  1419. implied warranty.
  1420. NOTES
  1421. Pbmtopgm works best with odd sample width and heights.
  1422. pbmtopi3111 March 1990
  1423. pbmtopi3 - convert a portable bitmap into an Atari Degas .pi3 file 
  1424. SYNOPSIS
  1425. <B>pbmtopi3</B>
  1426. [<I>pbmfile</I>]
  1427. DESCRIPTION
  1428. Reads a portable bitmap as input.
  1429. Produces an Atari Degas .pi3 file as output.
  1430. SEE ALSO
  1431. pi3topbm(1), pbm(5), ppmtopi1(1), pi1toppm(1)
  1432. AUTHOR
  1433. ©1988 by David Beckemeyer (bdt!david) and Jef Poskanzer.
  1434. pbmtopk16 August 1990
  1435. pbmtopk - convert a portable bitmap into a packed (PK) format font
  1436. SYNOPSIS
  1437. pbmtopk pkfile[.pk] tfmfile[.tfm] resolution [-s designsize] [-p num param...]
  1438. [-C codingscheme] [-F family] [-f optfile] [-c num]
  1439. [-W width] [-H height] [-D depth]
  1440. [-I ital] [-h horiz] [-v vert] [-x xoff] [-y yoff] [pbmfile]...
  1441. DESCRIPTION
  1442. Reads portable bitmaps as input, and produces a packed (PK) font file and a
  1443. TFM (TeX font metric) file as output. The resolution parameter indicates the
  1444. resolution of the font, in dots per inch. If the filename ``-'' is used for any
  1445. of the filenames, the standard input stream (or standard output where
  1446. appropriate) will be used.
  1447. OPTIONS
  1448.   STYLE="" SRC="img18.png"
  1449.  ALT="\begin{IPlist}
  1450. \IPitem{{-s\ designsize}}
  1451. Sets the design size of the font, in Te...
  1452. ...offset of the next character to yoff (in pixels, from the
  1453. top row).
  1454. \end{IPlist}">
  1455. SEE ALSO
  1456. pktopbm(1), pbm(5)
  1457. AUTHOR
  1458. Adapted from Tom Rokicki's pxtopk by Angus Duggan (ajcd@dcs.ed.ac.uk).
  1459. pbmtoplot11 September 1990
  1460. pbmtoplot - convert a portable bitmap into a Unix plot(5) file
  1461. SYNOPSIS
  1462. <B>pbmtoplot</B>
  1463. [<I>pbmfile</I>]
  1464. DESCRIPTION
  1465. Reads a portable bitmap as input.
  1466. Produces a Unix
  1467. <I>plot</I>
  1468. file.
  1469. Note that there is no plottopbm tool - this transformation is one-way.
  1470. SEE ALSO
  1471. pbm(5), plot(5)
  1472. AUTHOR
  1473. ©1990 by Arthur David Olson.
  1474. pbmtoptx131 August 1988
  1475. pbmtoptx - convert a portable bitmap into Printronix printer graphics
  1476. SYNOPSIS
  1477. <B>pbmtoptx</B>
  1478. [<I>pbmfile</I>]
  1479. DESCRIPTION
  1480. Reads a portable bitmap as input.
  1481. Produces a file of Printronix printer graphics as output.
  1482. Note that there is no ptxtopbm tool - this transformation is one way.
  1483. SEE ALSO
  1484. pbm(5)
  1485. AUTHOR
  1486. ©1988 by Jef Poskanzer.
  1487. pbmtox10bm131 August 1988
  1488. pbmtox10bm - convert a portable bitmap into an X10 bitmap
  1489. SYNOPSIS
  1490. <B>pbmtox10bm</B>
  1491. [<I>pbmfile</I>]
  1492. DESCRIPTION
  1493. Reads a portable bitmap as input.
  1494. Produces an X10 bitmap as output.
  1495. This older format is maintained for compatibility.
  1496. Note that there is no x10bmtopbm tool, because
  1497. <I>xbmtopbm</I>
  1498. can read both X11 and X10 bitmaps.
  1499. SEE ALSO
  1500. pbmtoxbm(1), xbmtopbm(1), pbm(5)
  1501. AUTHOR
  1502. ©1988 by Jef Poskanzer.
  1503. pbmtoxbm131 August 1988
  1504. pbmtoxbm - convert a portable bitmap into an X11 bitmap
  1505. SYNOPSIS
  1506. <B>pbmtoxbm</B>
  1507. [<I>pbmfile</I>]
  1508. DESCRIPTION
  1509. Reads a portable bitmap as input.
  1510. Produces an X11 bitmap as output.
  1511. SEE ALSO
  1512. pbmtox10bm(1), xbmtopbm(1), pbm(5)
  1513. AUTHOR
  1514. ©1988 by Jef Poskanzer.
  1515. pbmtoybm106 March 1990
  1516. pgmtoybm - convert a portable bitmap into a Bennet Yee ``face'' file
  1517. SYNOPSIS
  1518. <B>pbmtoybm</B>
  1519. [<I>pbmfile</I>]
  1520. DESCRIPTION
  1521. Reads a portable bitmap as input.
  1522. Produces as output a file acceptable to the
  1523. <I>face</I>
  1524. <I>xbm</I>
  1525. programs by Bennet Yee (bsy+@cs.cmu.edu).
  1526. SEE ALSO
  1527. ybmtopbm(1), pbm(5), face(1), face(5), xbm(1)
  1528. AUTHOR
  1529. ©1991 by Jamie Zawinski and Jef Poskanzer.
  1530. pbmtozincl02 November 1990
  1531. pbmtozinc - convert a portable bitmap into a Zinc bitmap
  1532. SYNOPSIS
  1533. <B>pbmtozinc</B>
  1534. [<I>pbmfile</I>]
  1535. DESCRIPTION
  1536. Reads a portable bitmap as input.
  1537. Produces a bitmap in the format used by the Zinc Interface Library
  1538. (ZIL) Version 1.0 as output.
  1539. SEE ALSO
  1540. pbm(5)
  1541. AUTHOR
  1542. ©1988 by James Darrell McCauley (jdm5548@diamond.tamu.edu)
  1543. and Jef Poskanzer.
  1544. pbmupc114 March 1989
  1545. pbmupc - create a Universal Product Code bitmap
  1546. SYNOPSIS
  1547. <B>pbmupc</B>
  1548. [<B>-s1</B>|<B>-s2</B>]
  1549. <I>type manufac product</I>
  1550. DESCRIPTION
  1551. Generates a Universal Product Code symbol.
  1552. The three arguments are: a one digit product type, a five digit
  1553. manufacturer code, and a five digit product code.
  1554. For example, ``0 72890 00011'' is the code for Heineken.
  1555. As presently configured,
  1556. <I>pbmupc</I>
  1557. produces a bitmap 230 bits wide and 175 bits high.
  1558. The size can be altered by changing the defines at the beginning of
  1559. the program, or by running the output through
  1560. <I>pnmenlarge</I>
  1561. <I>pnmscale</I>.
  1562. OPTIONS
  1563. <B>-s1</B>
  1564. <B>-s2</B>
  1565. flags select the style of UPC to generate.
  1566. The default,
  1567. <B>-s1</B>,
  1568. looks more or less like this:
  1569.  ||||||||||||||||
  1570.  ||||||||||||||||
  1571.  ||||||||||||||||
  1572.  ||||||||||||||||
  1573. 0||12345||67890||5
  1574. The other style,
  1575. <B>-s2</B>,
  1576. puts the product type digit higher up, and
  1577. doesn't display the checksum digit:
  1578.  ||||||||||||||||
  1579.  ||||||||||||||||
  1580. 0||||||||||||||||
  1581.  ||||||||||||||||
  1582.  ||12345||67890||
  1583. SEE ALSO
  1584. pbm(5)
  1585. AUTHOR
  1586. ©1989 by Jef Poskanzer.
  1587. pcxtoppm19 April 1990
  1588. pcxtoppm - convert a PCX file into a portable pixmap
  1589. SYNOPSIS
  1590. <B>pcxtoppm</B>
  1591. [<I>pcxfile</I>]
  1592. DESCRIPTION
  1593. Reads a PCX file as input.
  1594. Produces a portable pixmap as output.
  1595. SEE ALSO
  1596. ppmtopcx(1), ppm(5)
  1597. AUTHOR
  1598. ©1990 by Michael Davidson.
  1599. pgm512 November 1991
  1600. pgm - portable graymap file format
  1601. DESCRIPTION
  1602. The portable graymap format is a lowest common denominator grayscale
  1603. file format.
  1604. The definition is as follows:
  1605.   STYLE="" SRC="img19.png"
  1606.  ALT="\begin{IPlist}
  1607. \IPitem{{-}}
  1608. A \lq\lq magic number'' for identifying the file type.
  1609. A ...
  1610. ...omments).
  1611. \IPitem{{-}}
  1612. No line should be longer than 70 characters.
  1613. \end{IPlist}">
  1614. Here is an example of a small graymap in this format:
  1615. # feep.pgm
  1616. 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  1617. 0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
  1618. 0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0 15  0
  1619. 0  3  3  3  0  0  0  7  7  7  0  0  0 11 11 11  0  0  0 15 15 15 15  0
  1620. 0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0  0  0
  1621. 0  3  0  0  0  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15  0  0  0  0
  1622. 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  1623. Programs that read this format should be as lenient as possible,
  1624. accepting anything that looks remotely like a graymap.
  1625. There is also a variant on the format, available
  1626. by setting the RAWBITS option at compile time.  This variant is
  1627. different in the following ways:
  1628.   STYLE="" SRC="img20.png"
  1629.  ALT="\begin{IPlist}
  1630. \IPitem{{-}}
  1631. The \lq\lq magic number'' is \lq\lq P5'' instead of \lq\lq P2''.
  1632. \I...
  1633. ...{-}}
  1634. The files are smaller and many times faster to read and write.
  1635. \end{IPlist}">
  1636. Note that this raw format can only be used for maxvals less than
  1637. or equal to 255.
  1638. If you use the
  1639. <I>pgm</I>
  1640. library and try to write a file with a larger maxval,
  1641. it will automatically fall back on the slower but more general plain
  1642. format.
  1643. SEE ALSO
  1644. fitstopgm(1), fstopgm(1), hipstopgm(1), lispmtopgm(1), psidtopgm(1),
  1645. rawtopgm(1),
  1646. pgmbentley(1), pgmcrater(1), pgmedge(1), pgmenhance(1), pgmhist(1), pgmnorm(1),
  1647. pgmoil(1), pgmramp(1), pgmtexture(1),
  1648. pgmtofits(1), pgmtofs(1), pgmtolispm(1), pgmtopbm(1),
  1649. pnm(5), pbm(5), ppm(5)
  1650. AUTHOR
  1651. ©1989, 1991 by Jef Poskanzer.
  1652. pgmbentley111 January 1991
  1653. pgmbentley - Bentleyize a portable graymap
  1654. SYNOPSIS
  1655. <B>pgmbentley</B>
  1656. [<I>pgmfile</I>]
  1657. DESCRIPTION
  1658. Reads a portable graymap as input.
  1659. Performs The Bentley Effect, and writes a portable graymap as output.
  1660. The Bentley Effect is described in ``Beyond Photography'' by Holzmann,
  1661. chapter 4, photo 4.
  1662. It's a vertical smearing based on brightness.
  1663. SEE ALSO
  1664. pgmoil(1), ppmrelief(1), pgm(5)
  1665. AUTHOR
  1666. ©1990 by Wilson Bent (whb@hoh-2.att.com).
  1667. pgmcrater115 October 1991
  1668. pgmcrater - create cratered terrain by fractal forgery
  1669. SYNOPSIS
  1670. <DIV class="LEFT"><B>pgmcrater</B>
  1671. 'ti 15
  1672. [<B>-number</B>
  1673. <I>n</I>]
  1674. [<B>-height</B>|<B>-ysize</B>
  1675. <I>s</I>]
  1676. [<B>-width</B>|<B>-xsize</B>
  1677. <I>s</I>]
  1678. [<B>-gamma</B>
  1679. <I>g</I>]
  1680. DESCRIPTION
  1681. <B>pgmcrater</B>
  1682. creates a portable graymap which mimics cratered terrain.  The graymap
  1683. is created by simulating the impact of a given number of craters with
  1684. random position and size, then rendering the resulting terrain
  1685. elevations based on a light source shining from one side of the
  1686. screen.  The size distribution of the craters is based on a power law
  1687. which results in many more small craters than large ones.  The number
  1688. of craters of a given size varies as the reciprocal of the area as
  1689. described on pages 31 and 32 of Peitgen and Saupe[1]; cratered bodies
  1690. in the Solar System are observed to obey this relationship.  The
  1691. formula used to obtain crater radii governed by this law from a
  1692. uniformly distributed pseudorandom sequence was developed by Rudy
  1693. Rucker.
  1694. </DIV>
  1695. <DIV class="LEFT">High resolution images with large numbers of craters often benefit
  1696. from being piped through
  1697. <B>pnmsmooth</B>.
  1698. The averaging performed by this process eliminates some of the jagged
  1699. pixels and lends a mellow ``telescopic image'' feel to the overall
  1700. picture.
  1701. OPTIONS
  1702.   STYLE="" SRC="img21.png"
  1703.  ALT="\begin{TPlist}{{\bf -number}{\it\ n}
  1704. \item[{{\bf -number}{\it\ n}
  1705. Causes
  1706. {\...
  1707. ...st, while
  1708. values less than 1 darken the image, increasing contrast.
  1709. \end{TPlist}">
  1710. </DIV>
  1711. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  1712. <B>-gamma</B>
  1713. option isn't really necessary since you can achieve the same
  1714. effect by piping the output from
  1715. <B>pgmcrater</B>
  1716. through
  1717. <B>pnmgamma</B>.
  1718. However,
  1719. <B>pgmcrater</B>
  1720. performs an internal gamma map anyway in the process of rendering the
  1721. elevation array into a graymap, so there's no additional overhead in
  1722. allowing a user-specified gamma.
  1723. </DIV>
  1724. <DIV class="LEFT">Real craters have two distinct morphologies.
  1725. <B>pgmcrater</B>
  1726. simulates only small craters, which are hemispherical in shape
  1727. (regardless of the incidence angle of the impacting body, as long as the
  1728. velocity is sufficiently high).  Large craters, such as Copernicus and
  1729. Tycho on the Moon, have a ``walled plain'' shape with a cross-section more
  1730. like:
  1731.           _____/  ____________/____________/  _____
  1732. Larger craters should really use this profile, including the central
  1733. peak, and totally obliterate the pre-existing terrain.
  1734. SEE ALSO
  1735. <B>pgm</B>(5),
  1736. <B>pnmgamma</B>(1),
  1737. <B>pnmsmooth</B>(1)
  1738.   STYLE="" SRC="img22.png"
  1739.  ALT="\begin{TPlist}{[1]}
  1740. \item[{[1]}]
  1741. Peitgen, H.-O., and Saupe, D. eds., The Science Of Fractal Images,
  1742. New York: Springer Verlag, 1988.
  1743. \end{TPlist}">
  1744. </DIV>
  1745. <DIV class="LEFT">AUTHOR
  1746.     John Walker
  1747.     Autodesk SA
  1748.     Avenue des Champs-Montants 14b
  1749.     CH-2074 MARIN
  1750.     Suisse/Schweiz/Svizzera/Svizra/Switzerland
  1751.   STYLE="" SRC="img23.png"
  1752.  ALT="\begin{TPlist}{Usenet:}
  1753. \item[{Usenet:}]
  1754. kelvin@Autodesk.com
  1755. \item[{Fax:}]
  1756. 038/33 88 15
  1757. \item[{Voice:}]
  1758. 038/33 76 33
  1759. \end{TPlist}">
  1760. </DIV>
  1761. <DIV class="LEFT">Permission to use, copy, modify, and distribute this software and its
  1762. documentation for any purpose and without fee is hereby granted,
  1763. without any conditions or restrictions.  This software is provided ``as
  1764. is'' without express or implied warranty.
  1765. </DIV>
  1766. <DIV class="LEFT"><B>PLUGWARE!</B>
  1767. If you like this kind of stuff, you may also enjoy ``James Gleick's
  1768. Chaos–The Software'' for MS-DOS, available for $59.95 from your
  1769. local software store or directly from Autodesk, Inc., Attn: Science
  1770. Series, 2320 Marinship Way, Sausalito, CA 94965, USA.  Telephone:
  1771. (800) 688-2344 toll-free or, outside the U.S. (415) 332-2344 Ext
  1772. 4886.  Fax: (415) 289-4718.  ``Chaos–The Software'' includes a more
  1773. comprehensive fractal forgery generator which creates
  1774. three-dimensional landscapes as well as clouds and planets, plus five
  1775. more modules which explore other aspects of Chaos.  The user guide of
  1776. more than 200 pages includes an introduction by James Gleick and
  1777. detailed explanations by Rudy Rucker of the mathematics and algorithms
  1778. used by each program.
  1779. </DIV>
  1780. <DIV class="LEFT">
  1781. pgmedge104 February 1990
  1782. </DIV>
  1783. <DIV class="LEFT">NAME
  1784. pgmedge - edge-detect a portable graymap
  1785. SYNOPSIS
  1786. <B>pgmedge</B>
  1787. [<I>pgmfile</I>]
  1788. DESCRIPTION
  1789. Reads a portable graymap as input.
  1790. Outlines the edges, and writes a portable graymap as output.
  1791. Piping the result through
  1792. <B>pgmtopbm -threshold</B>
  1793. and playing with the
  1794. threshold value will give a bitmap of the edges.
  1795. </DIV>
  1796. <DIV class="LEFT">The edge detection technique used is to take the Pythagorean sum of
  1797. two Sobel gradient operators at 90 degrees to each other.
  1798. For more details see ``Digital Image Processing'' by Gonzalez and Wintz,
  1799. chapter 7.
  1800. SEE ALSO
  1801. pgmenhance(1), pgmtopbm(1), pgm(5), pbm(5)
  1802. AUTHOR
  1803. ©1991 by Jef Poskanzer.
  1804. </DIV>
  1805. <DIV class="LEFT">
  1806. pgmenhance113 January 1989
  1807. </DIV>
  1808. <DIV class="LEFT">NAME
  1809. pgmenhance - edge-enhance a portable graymap
  1810. SYNOPSIS
  1811. <B>pgmenhance</B>
  1812. [<I>-N</I>]
  1813. [<I>pgmfile</I>]
  1814. DESCRIPTION
  1815. Reads a portable graymap as input.
  1816. Enhances the edges, and writes a portable graymap as output.
  1817. </DIV>
  1818. <DIV class="LEFT">The edge enhancing technique is taken from Philip R. Thompson's ``xim''
  1819. program, which in turn took it from section 6 of ``Digital Halftones by
  1820. Dot Diffusion'', D. E. Knuth, ACM Transaction on Graphics Vol. 6, No. 4,
  1821. October 1987, which in turn got it from two 1976 papers by J. F. Jarvis
  1822. <I>et. al.</I>
  1823. OPTIONS
  1824. </DIV>
  1825. <DIV class="LEFT">The optional
  1826. <I>-N</I>
  1827. flag should be a digit from 1 to 9.
  1828. 1 is the lowest level of enhancement, 9 is the highest,
  1829. The default is 9.
  1830. SEE ALSO
  1831. pgmedge(1), pgm(5), pbm(5)
  1832. AUTHOR
  1833. ©1989 by Jef Poskanzer.
  1834. </DIV>
  1835. <DIV class="LEFT">
  1836. pgmhist128 February 1989
  1837. </DIV>
  1838. <DIV class="LEFT">NAME
  1839. pgmhist - print a histogram of the values in a portable graymap
  1840. SYNOPSIS
  1841. <B>pgmhist</B>
  1842. [<I>pgmfile</I>]
  1843. DESCRIPTION
  1844. Reads a portable graymap as input.
  1845. Prints a histogram of the gray values.
  1846. SEE ALSO
  1847. pgmnorm(1), pgm(5), ppmhist(1)
  1848. AUTHOR
  1849. ©1989 by Jef Poskanzer.
  1850. </DIV>
  1851. <DIV class="LEFT">
  1852. pgmnoise116 November 1993
  1853. </DIV>
  1854. <DIV class="LEFT">NAME
  1855. pgmnoise - create a graymap made up of white noise
  1856. SYNOPSIS
  1857. <B>pgmnoise</B>
  1858. <I>width height</I>
  1859. DESCRIPTION
  1860. Creates a portable graymap that is made up of random pixels with
  1861. gray values in the range of 0 to PGM_MAXMAXVAL (depends on the compilation,
  1862. either 255 or 65535). The graymap has a size of width * height pixels.
  1863. SEE ALSO
  1864. pgm(5)
  1865. AUTHOR
  1866. ©1993 by Frank Neumann.
  1867. </DIV>
  1868. <DIV class="LEFT">
  1869. pgmnorm128 February 1989
  1870. </DIV>
  1871. <DIV class="LEFT">NAME
  1872. pgmnorm - normalize the contrast in a portable graymap
  1873. SYNOPSIS
  1874. <B>pgmnorm</B>
  1875. [<B>-bpercent</B>
  1876. <I>N</I>
  1877. <B>-bvalue</B>
  1878. <I>N</I>]
  1879. [<B>-wpercent</B>
  1880. <I>N</I>
  1881. <B>-wvalue</B>
  1882. <I>N</I>]
  1883. [<I>pgmfile</I>]
  1884. DESCRIPTION
  1885. Reads a portable graymap as input.
  1886. Normalizes the contrast by forcing the lightest pixels to white, the
  1887. darkest pixels to black, and linearly rescaling the ones in between;
  1888. and produces a portable graymap as output.
  1889. OPTIONS
  1890. </DIV>
  1891. <DIV class="LEFT">By default, the darkest 2 percent of all pixels are mapped to black, and
  1892. the lightest 1 percent are mapped to white.
  1893. You can override these percentages by using the
  1894. <B>-bpercent</B>
  1895. <B>-wpercent</B>
  1896. flags,
  1897. or you can specify the exact pixel values to be mapped by using the
  1898. <B>-bvalue</B>
  1899. <B>-wvalue</B>
  1900. flags.
  1901. Appropriate numbers for the flags can be gotten from the
  1902. <I>pgmhist</I>
  1903. tool.
  1904. If you just want to enhance the contrast, then choose values at elbows in the
  1905. histogram; <I>e.g.</I>, if value 29 represents 3% of the image but value 30
  1906. represents 20%, choose 30 for
  1907. <I>bvalue</I>.
  1908. If you want to lighten the
  1909. image, then set
  1910. <I>bvalue</I>
  1911. to 0 and just fiddle with
  1912. <I>wvalue</I>;
  1913. similarly, to darken the image, set
  1914. <I>wvalue</I>
  1915. to maxval and play with
  1916. <I>bvalue</I>.
  1917. </DIV>
  1918. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  1919. SEE ALSO
  1920. pgmhist(1), pgm(5)
  1921. AUTHOR
  1922. Partially based on the fbnorm filter in Michael Mauldin's ``Fuzzy
  1923. Pixmap''
  1924. package.
  1925. </DIV>
  1926. <DIV class="LEFT">©1989 by Jef Poskanzer.
  1927. </DIV>
  1928. <DIV class="LEFT">
  1929. pgmoil111 January 1991
  1930. </DIV>
  1931. <DIV class="LEFT">NAME
  1932. pgmoil - turn a portable graymap into an oil painting
  1933. SYNOPSIS
  1934. <B>pgmoil</B>
  1935. [<B>-n</B>
  1936. <I>N</I>]
  1937. [<I>pgmfile</I>]
  1938. DESCRIPTION
  1939. Reads a portable graymap as input.
  1940. Does an ``oil transfer'', and writes a portable graymap as output.
  1941. </DIV>
  1942. <DIV class="LEFT">The oil transfer is described in ``Beyond Photography'' by Holzmann,
  1943. chapter 4, photo 7.
  1944. It's a sort of localized smearing.
  1945. OPTIONS
  1946. </DIV>
  1947. <DIV class="LEFT">The optional
  1948. <B>-n</B>
  1949. flag controls the size of the area smeared.  The default value is 3.
  1950. Takes a long time to run.
  1951. SEE ALSO
  1952. pgmbentley(1), ppmrelief(1), pgm(5)
  1953. AUTHOR
  1954. ©1990 by Wilson Bent (whb@hoh-2.att.com).
  1955. </DIV>
  1956. <DIV class="LEFT">
  1957. pgmramp124 November 1989
  1958. </DIV>
  1959. <DIV class="LEFT">NAME
  1960. pgmramp - generate a grayscale ramp
  1961. SYNOPSIS
  1962. <B>pgmramp</B>
  1963. <B>-lr</B>|<B>-tb</B>
  1964. <B>-rectangle</B>|<B>-ellipse</B>
  1965. <I>width height</I>
  1966. DESCRIPTION
  1967. Generates a graymap of the specified size containing a black-to-white ramp.
  1968. These ramps are useful for multiplying with other images, using the
  1969. <I>pnmarith</I>
  1970. tool.
  1971. OPTIONS
  1972.   STYLE="" SRC="img24.png"
  1973.  ALT="\begin{TPlist}{{\bf -lr}}
  1974. \item[{{\bf -lr}}]
  1975. A left to right ramp.
  1976. \item[{{\bf -...
  1977. ...}}]
  1978. A rectangular ramp.
  1979. \item[{{\bf -ellipse}}]
  1980. An elliptical ramp.
  1981. \end{TPlist}">
  1982. </DIV>
  1983. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  1984. SEE ALSO
  1985. pnmarith(1), pgm(5)
  1986. AUTHOR
  1987. ©1989 by Jef Poskanzer.
  1988. </DIV>
  1989. <DIV class="LEFT">
  1990. pgmtexture122 Aug 1991
  1991. </DIV>
  1992. <DIV class="LEFT">NAME
  1993. pgmtexture - calculate textural features on a portable graymap
  1994. SYNOPSIS
  1995. <B>pgmtexture</B>
  1996. [<B>-d</B>
  1997. <I>d</I>]
  1998. [<I>pgmfile</I>]
  1999. DESCRIPTION
  2000. Reads a portable graymap as input.  Calculates textural features
  2001. based on spatial dependence matrices at 0, 45, 90, and 135 degrees for
  2002. a distance 
  2003. <I>d</I>
  2004. (default = 1).
  2005. Textural features include:
  2006.   STYLE="" SRC="img25.png"
  2007.  ALT="\begin{IPlist}
  2008. \IPitem{{}}
  2009. (1) Angular Second Moment,
  2010. (2) Contrast,
  2011. (3...
  2012. ...ures of Correlation, and
  2013. (14) Maximal Correlation Coefficient.
  2014. \end{IPlist}">
  2015. </DIV>
  2016. <DIV class="LEFT">Algorithm taken from:
  2017. Haralick, R.M., K. Shanmugam, and I. Dinstein. 1973. Textural features
  2018. for image classification.  
  2019. <I>IEEE Transactions on Systems, Man,</I>
  2020. <I>and Cybertinetics,</I>
  2021. SMC-3(6):610-621.
  2022. The program can run incredibly slow for large images (larger than 64 x 64)
  2023. and command line options are limited.
  2024. The method for finding (14) the maximal correlation coefficient, which
  2025. requires finding the second largest eigenvalue of a matrix Q, does not
  2026. always converge.
  2027. REFERENCES
  2028. <I>IEEE Transactions on Systems, Man,</I>
  2029. <I>and Cybertinetics,</I>
  2030. SMC-3(6):610-621.
  2031. SEE ALSO
  2032. pgm(5), pnmcut(1)
  2033. AUTHOR
  2034. ©1991 by Texas Agricultural Experiment Station, employer for
  2035. hire of James Darrell McCauley. 
  2036. </DIV>
  2037. <DIV class="LEFT">
  2038. pgmtofits120 September 1989
  2039. </DIV>
  2040. <DIV class="LEFT">NAME
  2041. pgmtofits - convert a portable graymap into FITS format
  2042. SYNOPSIS
  2043. <B>pgmtofits</B>
  2044. [<I>pgmfile</I>]
  2045. DESCRIPTION
  2046. Reads a portable graymap as input.
  2047. Produces a FITS file as output.
  2048. </DIV>
  2049. <DIV class="LEFT">FITS stands for Flexible Image Transport System.  A full description
  2050. can be found in Astronomy & Astrophysics Supplement Series 44 (1981),
  2051. page 363.
  2052. SEE ALSO
  2053. fitstopgm(1), pgm(5)
  2054. AUTHOR
  2055. ©1989 by Wilson H. Bent (whb@hoh-2.att.com).
  2056. </DIV>
  2057. <DIV class="LEFT">
  2058. pgmtofs118 May 1990
  2059. </DIV>
  2060. <DIV class="LEFT">NAME
  2061. pgmtofs - convert portable graymap to Usenix FaceSaver(tm) format
  2062. SYNOPSIS
  2063. <B>pgmtofs</B>
  2064. [<I>pgmfile</I>]
  2065. DESCRIPTION
  2066. Reads a portable graymap as input.
  2067. Produces Usenix FaceSaver(tm) format as output.
  2068. </DIV>
  2069. <DIV class="LEFT">FaceSaver is a registered trademark of Metron Computerware Ltd. of
  2070. Oakland, CA.
  2071. SEE ALSO
  2072. fstopgm(1), pgm(5)
  2073. AUTHOR
  2074. ©1991 by Jef Poskanzer.
  2075. </DIV>
  2076. <DIV class="LEFT">
  2077. pgmtolispm106 March 1990
  2078. </DIV>
  2079. <DIV class="LEFT">NAME
  2080. pgmtolispm - convert a portable graymap into Lisp Machine format
  2081. SYNOPSIS
  2082. <B>pgmtolispm</B>
  2083. [<I>pgmfile</I>]
  2084. DESCRIPTION
  2085. Reads a portable graymap as input.
  2086. Produces a Lisp Machine bitmap as output.
  2087. </DIV>
  2088. <DIV class="LEFT">This is the file format read by the tv:read-bit-array-file function on
  2089. TI Explorer and Symbolics lisp machines.
  2090. </DIV>
  2091. <DIV class="LEFT">Given a pgm (instead of a pbm) a multi-plane image will be output.
  2092. This is probably not useful unless you have a color lisp machine.
  2093. </DIV>
  2094. <DIV class="LEFT">Multi-plane bitmaps on lisp machines are color; but the lispm image file
  2095. format does not include a color map, so we must treat it as a graymap 
  2096. instead.  This is unfortunate.
  2097. SEE ALSO
  2098. lispmtopgm(1), pgm(5)
  2099. Output width is always rounded up to the nearest multiple of 32; this might 
  2100. not always be what you want, but it probably is (arrays which are not 
  2101. modulo 32 cannot be passed to the Lispm BITBLT function, and thus cannot 
  2102. easily be displayed on the screen).
  2103. </DIV>
  2104. <DIV class="LEFT">No color.
  2105. AUTHOR
  2106. ©1991 by Jamie Zawinski and Jef Poskanzer.
  2107. </DIV>
  2108. <DIV class="LEFT">
  2109. pgmtopbm126 July 1988
  2110. </DIV>
  2111. <DIV class="LEFT">NAME
  2112. pgmtopbm - convert a portable graymap into a portable bitmap
  2113. SYNOPSIS
  2114. <B>pgmtopbm</B>
  2115. [<B>-floyd</B>|<B>-fs</B>|<B>-threshold</B>
  2116. |<B>-dither8</B>|<B>-d8</B>|<B>-cluster3</B>
  2117. |<B>-c3</B>|<B>-cluster4</B>|<B>-c4</B>
  2118. |<B>-cluster8</B>|<B>-c8</B>]
  2119. [<B>-value</B>
  2120. <I>val</I>]
  2121. [<I>pgmfile</I>]
  2122. DESCRIPTION
  2123. Reads a portable graymap as input.
  2124. Produces a portable bitmap as output.
  2125. </DIV>
  2126. <DIV class="LEFT">Note that there is no pbmtopgm converter, because any pgm program can
  2127. read pbm files automagically.
  2128. OPTIONS
  2129. </DIV>
  2130. <DIV class="LEFT">The default quantization method is boustrophedonic Floyd-Steinberg error
  2131. diffusion
  2132. (<B>-floyd</B>
  2133. <B>-fs</B>).
  2134. Also available are simple thresholding
  2135. (<B>-threshold</B>);
  2136. Bayer's ordered dither
  2137. (<B>-dither8</B>)
  2138. with a 16x16 matrix; and three different sizes of 45-degree clustered-dot dither
  2139. (<B>-cluster3</B>,
  2140. <B>-cluster4</B>,
  2141. <B>-cluster8</B>).
  2142. </DIV>
  2143. <DIV class="LEFT">Floyd-Steinberg will almost always give the best looking results; however,
  2144. looking good is not always what you want.
  2145. For instance, thresholding can be used in a pipeline with the
  2146. <I>pnmconvol</I>
  2147. tool, for tasks like edge and peak detection.
  2148. And clustered-dot dithering gives a newspaper-ish look, a useful special effect.
  2149. </DIV>
  2150. <DIV class="LEFT">The
  2151. <B>-value</B>
  2152. flag alters the thresholding value for Floyd-Steinberg and
  2153. simple thresholding.
  2154. It should be a real number between 0 and 1.
  2155. Above 0.5 means darker images; below 0.5 means lighter.
  2156. </DIV>
  2157. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  2158. REFERENCES
  2159. The only reference you need for this stuff is ``Digital Halftoning'' by
  2160. Robert Ulichney, MIT Press, ISBN 0–262–21009–6.
  2161. SEE ALSO
  2162. pbmreduce(1), pgm(5), pbm(5), pnmconvol(1)
  2163. AUTHOR
  2164. ©1989 by Jef Poskanzer.
  2165. </DIV>
  2166. <DIV class="LEFT">
  2167. pgmtoppm111 January 1991
  2168. </DIV>
  2169. <DIV class="LEFT">NAME
  2170. pgmtoppm - colorize a portable graymap into a portable pixmap
  2171. SYNOPSIS
  2172. <B>pgmtoppm</B>
  2173. <I>colorspec</I>
  2174. [<I>pgmfile</I>]
  2175. <B>pgmtoppm</B>
  2176. <I>colorspec1</I><B>-</B><I>colorspec2</I>
  2177. [<I>pgmfile</I>]
  2178. <B>pgmtoppm -map</B>
  2179. <I>mapfile</I>
  2180. [<I>pgmfile</I>]
  2181. DESCRIPTION
  2182. Reads a portable graymap as input.
  2183. Colorizes it by multiplying the the gray values by specified color or colors,
  2184. and produces a portable pixmap as output.
  2185. </DIV>
  2186. <DIV class="LEFT">If only one color is specified, black in the pgm file stays black and
  2187. white in the pgm file turns into the specified color in the ppm file.
  2188. If two colors (separated by a dash) are specified, then black gets mapped
  2189. to the first color and white gets mapped to the second.
  2190. </DIV>
  2191. <DIV class="LEFT">The color can be specified in five ways:
  2192.   STYLE="" SRC="img26.png"
  2193.  ALT="\begin{TPlist}{o}
  2194. \item[{o}]
  2195. A name, assuming
  2196. that a pointer to an X11-style col...
  2197. ...is style was added before MIT came up with the similar rgbi style.)
  2198. \end{TPlist}">
  2199. </DIV>
  2200. <DIV class="LEFT">Also, the
  2201. <B>-map</B>
  2202. flag lets you specify an entire colormap to be used.
  2203. The mapfile is just a
  2204. <I>ppm</I>
  2205. file; it can be any shape, all that matters
  2206. is the colors in it and their order.
  2207. In this case, black gets mapped into the first
  2208. color in the map file, and white gets mapped to the last.
  2209. SEE ALSO
  2210. rgb3toppm(1), ppmtopgm(1), ppmtorgb3(1), ppm(5), pgm(5)
  2211. AUTHOR
  2212. ©1991 by Jef Poskanzer.
  2213. </DIV>
  2214. <DIV class="LEFT">
  2215. pi1toppm119 July 1990
  2216. </DIV>
  2217. <DIV class="LEFT">NAME
  2218. pi1toppm - convert an Atari Degas .pi1 into a portable pixmap
  2219. SYNOPSIS
  2220. <B>pi1toppm</B>
  2221. [<I>pi1file</I>]
  2222. DESCRIPTION
  2223. Reads an Atari Degas .pi1 file as input.
  2224. Produces a portable pixmap as output.
  2225. SEE ALSO
  2226. ppmtopi1(1), ppm(5), pi3topbm(1), pbmtopi3(1)
  2227. AUTHOR
  2228. ©1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
  2229. </DIV>
  2230. <DIV class="LEFT">
  2231. pi3topbm111 March 1990
  2232. </DIV>
  2233. <DIV class="LEFT">NAME
  2234. pi3topbm - convert an Atari Degas .pi3 file into a portable bitmap
  2235. SYNOPSIS
  2236. <B>pi3topbm</B>
  2237. [<I>pi3file</I>]
  2238. DESCRIPTION
  2239. Reads an Atari Degas .pi3 file as input.
  2240. Produces a portable bitmap as output.
  2241. SEE ALSO
  2242. pbmtopi3(1), pbm(5), pi1toppm(1), ppmtopi1(1)
  2243. AUTHOR
  2244. ©1988 by David Beckemeyer (bdt!david) and Diomidis D. Spinellis.
  2245. </DIV>
  2246. <DIV class="LEFT">
  2247. picttoppm129 November 1991
  2248. </DIV>
  2249. <DIV class="LEFT">NAME
  2250. picttoppm - convert a Macintosh PICT file into a portable pixmap
  2251. SYNOPSIS
  2252. <B>picttoppm</B>
  2253. [<B>-verbose</B>]
  2254. [<B>-fullres</B>]
  2255. [<B>-noheader</B>]
  2256. [<I>pictfile</I>]
  2257. DESCRIPTION
  2258. Reads a PICT file (version 1 or 2) and outputs a portable pixmap.
  2259. Useful as the first step in converting a scanned image to something
  2260. that can be displayed on Unix.
  2261. OPTIONS
  2262.   STYLE="" SRC="img27.png"
  2263.  ALT="\begin{TPlist}{{\bf --fullres}}
  2264. \item[{{\bf --fullres}}]
  2265. Force any images in the...
  2266. ...of information that only
  2267. {\it picttoppm}
  2268. hackers really care about.
  2269. \end{TPlist}">
  2270. </DIV>
  2271. <DIV class="LEFT">BUGS
  2272. The PICT file format is a general drawing format.
  2273. <I>picttoppm</I>
  2274. only supports a small subset of its operations but is still very useful for
  2275. files produced by scanning software.  In particular, text added to a
  2276. scanned image will be silently ignored.
  2277. SEE ALSO
  2278. Inside Macintosh volume 5,
  2279. ppmtopict(1),
  2280. ppm(5)
  2281. AUTHOR
  2282. ©1989 George Phillips (phillips@cs.ubc.ca).
  2283. </DIV>
  2284. <DIV class="LEFT">
  2285. pjtoppm114 July 1991
  2286. </DIV>
  2287. <DIV class="LEFT">NAME
  2288. pjtoppm - convert an HP PaintJet file to a portable pixmap
  2289. SYNOPSIS
  2290. <B>pjtoppm</B>
  2291. [<I>paintjet</I>]
  2292. DESCRIPTION
  2293. Reads an HP PaintJet file as input and converts it into a portable pixmap.
  2294. This was a quick hack to save some trees, and it only handles a small
  2295. subset of the paintjet commands.
  2296. In particular, it will only handle 
  2297. enough commands to convert most raster image files.
  2298. REFERENCES
  2299. HP PaintJet XL Color Graphics Printer User's Guide
  2300. SEE ALSO
  2301. ppmtopj(1)
  2302. AUTHOR
  2303. ©1991 by Christos Zoulas.
  2304. </DIV>
  2305. <DIV class="LEFT">
  2306. pktopbm16 August 1990
  2307. </DIV>
  2308. <DIV class="LEFT">NAME
  2309. pktopbm - convert packed (PK) format font into portable bitmap(s)
  2310. SYNOPSIS
  2311. pktopbm pkfile[.pk] [-c num] pbmfile ...
  2312. DESCRIPTION
  2313. Reads a packed (PK) font file as input, and produces portable bitmaps as
  2314. output. If the filename ``-'' is used for any
  2315. of the filenames, the standard input stream (or standard output where
  2316. appropriate) will be used.
  2317. OPTIONS
  2318.   STYLE="" SRC="img28.png"
  2319.  ALT="\begin{IPlist}
  2320. \IPitem{{-c\ num}}
  2321. Sets the character number of the next bitmap written to num.
  2322. \end{IPlist}">
  2323. </DIV>
  2324. <DIV class="LEFT">SEE ALSO
  2325. pbmtopk(1), pbm(5)
  2326. AUTHOR
  2327. Adapted from Tom Rokicki's pxtopk by Angus Duggan (ajcd@dcs.ed.ac.uk.
  2328. </DIV>
  2329. <DIV class="LEFT">
  2330. pnm527 September 1991
  2331. </DIV>
  2332. <DIV class="LEFT">NAME
  2333. pnm - portable anymap file format
  2334. DESCRIPTION
  2335. <I>pnm</I>
  2336. programs operate on portable bitmaps, graymaps, and pixmaps, produced by the
  2337. <I>pbm, pgm,</I>
  2338. <I>ppm</I>
  2339. segments.  There is no file format associated with
  2340. <I>pnm</I>
  2341. itself.
  2342. SEE ALSO
  2343. anytopnm(1), rasttopnm(1), tifftopnm(1), xwdtopnm(1),
  2344. pnmtops(1), pnmtorast(1), pnmtotiff(1), pnmtoxwd(1),
  2345. pnmarith(1), pnmcat(1), pnmconvol(1), pnmcrop(1), pnmcut(1),
  2346. pnmdepth(1), pnmenlarge(1), pnmfile(1), pnmflip(1), pnmgamma(1),
  2347. pnmindex(1), pnminvert(1), pnmmargin(1), pnmnoraw(1), pnmpaste(1),
  2348. pnmrotate(1), pnmscale(1), pnmshear(1), pnmsmooth(1), pnmtile(1),
  2349. ppm(5), pgm(5), pbm(5)
  2350. AUTHOR
  2351. ©1989, 1991 by Jef Poskanzer.
  2352. </DIV>
  2353. <DIV class="LEFT">
  2354. pnmarith126 August 1993
  2355. </DIV>
  2356. <DIV class="LEFT">NAME
  2357. pnmarith - perform arithmetic on two portable anymaps
  2358. SYNOPSIS
  2359. <B>pnmarith</B>
  2360. <B>-add</B>|<B>-subtract</B>|<B>-multiply</B>|<B>-difference</B>
  2361. <I>pnmfile1 pnmfile2</I>
  2362. DESCRIPTION
  2363. Reads two portable anymaps as input.
  2364. Performs the specified arithmetic operation,
  2365. and produces a portable anymap as output.
  2366. The two input anymaps must be the same width and height.
  2367. </DIV>
  2368. <DIV class="LEFT">The arithmetic is performed between corresponding pixels in the two
  2369. anymaps, as if maxval was 1.0, black was 0.0, and a linear scale in between.
  2370. Results that fall outside of [0..1) are truncated.
  2371. </DIV>
  2372. <DIV class="LEFT">The operator
  2373. <I>-difference</I>
  2374. calculates the absolute value of
  2375. <I>pnmarith -subtract pnmfile1 pnmfile2,</I>
  2376. <I>i.e.</I>, no truncation is done.
  2377. </DIV>
  2378. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  2379. SEE ALSO
  2380. pbmmask(1), pnmpaste(1), pnminvert(1), pnm(5)
  2381. AUTHOR
  2382. ©1989, 1991 by Jef Poskanzer..
  2383. Lightly modified by Marcel Wijkstra (wijkstra@fwi.uva.nl).
  2384. </DIV>
  2385. <DIV class="LEFT">
  2386. pnmcat112 March 1989
  2387. </DIV>
  2388. <DIV class="LEFT">NAME
  2389. pnmcat - concatenate portable anymaps
  2390. SYNOPSIS
  2391. <B>pnmcat</B>
  2392. [<B>-white</B>|<B>-black</B>]
  2393. <B>-leftright</B>|<B>-lr</B>
  2394. [<B>-jtop</B>|<B>-jbottom</B>]
  2395. <I>pnmfile pnmfile</I>
  2396. <B>pnmcat</B>
  2397. [<B>-white</B>|<B>-black</B>]
  2398. <B>-topbottom</B>|<B>-tb</B>
  2399. [<B>-jleft</B>|<B>-jright</B>]
  2400. <I>pnmfile pnmfile</I>
  2401. DESCRIPTION
  2402. Reads portable anymaps as input.
  2403. Concatenates them either left to right or top to bottom, and produces a
  2404. portable anymap as output.
  2405. OPTIONS
  2406. </DIV>
  2407. <DIV class="LEFT">If the anymaps are not all the same height (left-right) or width (top-bottom),
  2408. the smaller ones have to be justified with the largest.
  2409. By default, they get centered, but you can specify one side or the other
  2410. with one of the -j* flags.
  2411. <B>-topbottom -jleft</B>
  2412. would stack the anymaps on top of each other, flush with the left edge.
  2413. </DIV>
  2414. <DIV class="LEFT">The
  2415. <B>-white</B>
  2416. <B>-black</B>
  2417. flags specify what color to use to fill in the extra space
  2418. when doing this justification.
  2419. If neither is specified, the program makes a guess.
  2420. </DIV>
  2421. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  2422. SEE ALSO
  2423. pnm(5)
  2424. AUTHOR
  2425. ©1989 by Jef Poskanzer.
  2426. </DIV>
  2427. <DIV class="LEFT">
  2428. pnmcomp121 February 1989
  2429. </DIV>
  2430. <DIV class="LEFT">NAME
  2431. pnmcomp - composite two portable anymap files together
  2432. SYNOPSIS
  2433. <B>pnmcomp</B>
  2434. [<I>-invert</I>]
  2435. [<I>-xoff</I>N<I>]</I>
  2436. [<I>-yoff</I>N<I>]</I>
  2437. [<I>-alpha</I>pgmfile<I>]</I>
  2438. overlay
  2439. [<I>pnm-input</I>]
  2440. [<I>pnm-output</I>]
  2441. DESCRIPTION
  2442. Reads in a portable any map image and put a overlay upon it, with optional
  2443. alpha mask.  The 
  2444. <I>-alpha pgmfile</I>
  2445. allows you to also add an alpha mask file to the compositing process, the
  2446. range of max and min can be swapped by using the
  2447. <I>-invert</I>
  2448. option.
  2449. <I>-xoff</I>
  2450. <I>-yoff</I>
  2451. arguments can be negative, allowing you to shift the overlay off the
  2452. top corner of the screen.
  2453. SEE ALSO
  2454. pnm(5)
  2455. AUTHOR
  2456. ©1992 by David Koblas (koblas@mips.com).
  2457. </DIV>
  2458. <DIV class="LEFT">
  2459. pnmconvol113 January 1991
  2460. </DIV>
  2461. <DIV class="LEFT">NAME
  2462. pnmconvol - general MxN convolution on a portable anymap
  2463. SYNOPSIS
  2464. <B>pnmconvol</B>
  2465. <I>convolutionfile</I>
  2466. [<I>pnmfile</I>]
  2467. DESCRIPTION
  2468. Reads two portable anymaps as input.
  2469. Convolves the second using the first,
  2470. and writes a portable anymap as output.
  2471. </DIV>
  2472. <DIV class="LEFT">Convolution means replacing each pixel with a weighted average of the
  2473. nearby pixels.  The weights and the area to average are determined by
  2474. the convolution matrix.
  2475. The unsigned numbers in the convolution file are offset by -maxval/2 to
  2476. make signed numbers, and then normalized, so the actual values in the
  2477. convolution file are only relative.
  2478. </DIV>
  2479. <DIV class="LEFT">Here is a sample convolution file;
  2480. it does a simple average of the nine immediate neighbors, resulting
  2481. in a smoothed image:
  2482.     P2
  2483.     3 3
  2484.     18
  2485.     10 10 10
  2486.     10 10 10
  2487.     10 10 10
  2488. </DIV>
  2489. <DIV class="LEFT">To see how this works, do the above-mentioned offset: 10 - 18/2 gives 1.
  2490. The possible range of values is from 0 to 18, and after the offset
  2491. that's -9 to 9.  The normalization step makes the range -1 to 1, and
  2492. the values get scaled correspondingly so they become 1/9 - exactly what
  2493. you want.
  2494. The equivalent matrix for 5x5 smoothing would have maxval 50 and be
  2495. filled with 26.
  2496. </DIV>
  2497. <DIV class="LEFT">The convolution file will usually be a graymap,
  2498. so that the same convolution gets applied to each color component.
  2499. However, if you want to use a pixmap and do a different convolution to
  2500. different colors, you can certainly do that.
  2501. SEE ALSO
  2502. pnmsmooth(1), pnm(5)
  2503. AUTHOR
  2504. ©1989, 1991 by Jef Poskanzer.
  2505. </DIV>
  2506. <DIV class="LEFT">
  2507. pnmcrop125 February 1989
  2508. </DIV>
  2509. <DIV class="LEFT">NAME
  2510. pnmcrop - crop a portable anymap
  2511. SYNOPSIS
  2512. <B>pnmcrop</B>
  2513. [<B>-white</B>|<B>-black</B>]
  2514. [<B>-left</B>]
  2515. [<B>-right</B>]
  2516. [<B>-top</B>]
  2517. [<B>-bottom</B>]
  2518. [<I>pnmfile</I>]
  2519. DESCRIPTION
  2520. Reads a portable anymap as input.
  2521. Removes edges that are the background color,
  2522. and produces a portable anymap as output.
  2523. OPTIONS
  2524. </DIV>
  2525. <DIV class="LEFT">By default, it makes a guess as to what the background color is.
  2526. You can override the default with the
  2527. <B>-white</B>
  2528. <B>-black</B>
  2529. flags.
  2530. </DIV>
  2531. <DIV class="LEFT">The options
  2532. <B>-left, -right, -top</B>
  2533. <B>-bottom</B>
  2534. restrict cropping to the sides specified. The default is to crop all sides of
  2535. the image.
  2536. </DIV>
  2537. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  2538. SEE ALSO
  2539. pnmcut(1), pnm(5)
  2540. AUTHOR
  2541. ©1989 by Jef Poskanzer.
  2542. </DIV>
  2543. <DIV class="LEFT">
  2544. pnmcut121 February 1989
  2545. </DIV>
  2546. <DIV class="LEFT">NAME
  2547. pnmcut - cut a rectangle out of a portable anymap
  2548. SYNOPSIS
  2549. <B>pnmcut</B>
  2550. <I>x y width height</I>
  2551. [<I>pnmfile</I>]
  2552. DESCRIPTION
  2553. Reads a portable anymap as input.
  2554. Extracts the specified rectangle,
  2555. and produces a portable anymap as output.
  2556. <I>x</I>
  2557. <I>y</I>
  2558. can be negative, in which case they are interpreted
  2559. relative to the right and bottom of the anymap, respectively.
  2560. SEE ALSO
  2561. pnm(5)
  2562. AUTHOR
  2563. ©1989 by Jef Poskanzer.
  2564. </DIV>
  2565. <DIV class="LEFT">
  2566. pnmdepth112 January 1991
  2567. </DIV>
  2568. <DIV class="LEFT">NAME
  2569. pnmdepth - change the maxval in a portable anymap
  2570. SYNOPSIS
  2571. <B>pnmdepth</B>
  2572. <I>newmaxval</I>
  2573. [<I>pnmfile</I>]
  2574. DESCRIPTION
  2575. Reads a portable anymap as input.
  2576. Scales all the pixel values, and writes out the image with the new maxval.
  2577. Scaling the colors down to a smaller maxval will result in some loss
  2578. of information.
  2579. </DIV>
  2580. <DIV class="LEFT">Be careful of off-by-one errors when choosing the new maxval.
  2581. For instance, if you want the color values to be five bits wide,
  2582. use a maxval of 31, not 32.
  2583. SEE ALSO
  2584. pnm(5), ppmquant(1), ppmdither(1)
  2585. AUTHOR
  2586. ©1989, 1991 by Jef Poskanzer.
  2587. </DIV>
  2588. <DIV class="LEFT">
  2589. pnmenlarge126 February 1989
  2590. </DIV>
  2591. <DIV class="LEFT">NAME
  2592. pnmenlarge - read a portable anymap and enlarge it N times
  2593. SYNOPSIS
  2594. <B>pnmenlarge</B>
  2595. <I>N</I>
  2596. [<I>pnmfile</I>]
  2597. DESCRIPTION
  2598. Reads a portable anymap as input.
  2599. Replicates its pixels
  2600. <I>N</I>
  2601. times, and produces a portable anymap as output.
  2602. </DIV>
  2603. <DIV class="LEFT"><I>pnmenlarge</I>
  2604. can only enlarge by integer factors.
  2605. The slower but more general
  2606. <I>pnmscale</I>
  2607. can enlarge or reduce by arbitrary
  2608. factors, and
  2609. <I>pbmreduce</I>
  2610. can reduce by integer factors, but only for bitmaps.
  2611. </DIV>
  2612. <DIV class="LEFT">If you enlarge by a factor of 3 or more, you should probably add a
  2613. <I>pnmsmooth</I>
  2614. step; otherwise, you can see the original pixels in the resulting image.
  2615. SEE ALSO
  2616. pbmreduce(1), pnmscale(1), pnmsmooth(1), pnm(5)
  2617. AUTHOR
  2618. ©1989 by Jef Poskanzer.
  2619. </DIV>
  2620. <DIV class="LEFT">
  2621. pnmfile19 January 1991
  2622. </DIV>
  2623. <DIV class="LEFT">NAME
  2624. pnmfile - describe a portable anymap
  2625. SYNOPSIS
  2626. <B>pnmfile</B>
  2627. [<I>pnmfile</I>]
  2628. DESCRIPTION
  2629. Reads one or more portable anymaps as input.
  2630. Writes out short descriptions of the image type, size, etc.
  2631. This is mostly for use in shell scripts, so the format is not
  2632. particularly pretty.
  2633. SEE ALSO
  2634. pnm(5), file(1)
  2635. AUTHOR
  2636. ©1991 by Jef Poskanzer.
  2637. </DIV>
  2638. <DIV class="LEFT">
  2639. pnmflip125 July 1989
  2640. </DIV>
  2641. <DIV class="LEFT">NAME
  2642. pnmflip - perform one or more flip operations on a portable anymap
  2643. SYNOPSIS
  2644. <B>pnmflip</B>
  2645. [<B>-leftright</B>|<B>-lr</B>]
  2646. [<B>-topbottom</B>|<B>-tb</B>]
  2647. [<B>-transpose</B>|<B>-xy</B>]
  2648. [<B>-rotate90</B>|<B>-r90</B>|<B>-ccw</B>
  2649. [<B>-rotate270</B>|<B>-r270</B>|<B>-cw</B>
  2650. [<B>-rotate180</B>|<B>-r180</B>]
  2651. [<I>pnmfile</I>]
  2652. DESCRIPTION
  2653. Reads a portable anymap as input.
  2654. Performs one or more flip operations, in the order specified, and
  2655. writes out a portable anymap.
  2656. OPTIONS
  2657. </DIV>
  2658. <DIV class="LEFT">The flip operations available are: left for right
  2659. (<B>-leftright</B>
  2660. <B>-lr</B>);
  2661. top for bottom
  2662. (<B>-topbottom</B>
  2663. <B>-tb</B>);
  2664. and transposition
  2665. (<B>-transpose</B>
  2666. <B>-xy</B>).
  2667. In addition, some canned concatenations are available:
  2668. <B>-rotate90</B>
  2669. <B>-ccw</B>
  2670. is equivalent to
  2671. <B>-transpose</B>
  2672. <B>-topbottom</B>;
  2673. <B>-rotate270</B>
  2674. <B>-cw</B>
  2675. is equivalent to
  2676. <B>-transpose</B>
  2677. <B>-leftright</B>;
  2678. <B>-rotate180</B>
  2679. is equivalent to
  2680. <B>-leftright</B>
  2681. <B>-topbottom</B>.
  2682. </DIV>
  2683. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  2684. SEE ALSO
  2685. pnmrotate(1), pnm(5)
  2686. AUTHOR
  2687. ©1989 by Jef Poskanzer.
  2688. </DIV>
  2689. <DIV class="LEFT">
  2690. pnmgamma112 January 1991
  2691. </DIV>
  2692. <DIV class="LEFT">NAME
  2693. pnmgamma - perform gamma correction on a portable anymap
  2694. SYNOPSIS
  2695. <B>pnmgamma</B>
  2696. <I>value</I>
  2697. [<I>pnmfile</I>]
  2698. <B>pnmgamma</B>
  2699. <I>redvalue greenvalue bluevalue</I>
  2700. [<I>pnmfile</I>]
  2701. DESCRIPTION
  2702. Reads a portable anymap as input.
  2703. Performs gamma correction,
  2704. and produces a portable anymap as output.
  2705. </DIV>
  2706. <DIV class="LEFT">The arguments specify what gamma value(s) to use.
  2707. A value of 1.0 leaves the image alone, less than one darkens it,
  2708. and greater than one lightens it.
  2709. SEE ALSO
  2710. pnm(5)
  2711. AUTHOR
  2712. ©1991 by Bill Davidson and Jef Poskanzer.
  2713. </DIV>
  2714. <DIV class="LEFT">
  2715. pnminvert108 August 1989
  2716. </DIV>
  2717. <DIV class="LEFT">NAME
  2718. pnminvert - invert a portable anymap
  2719. SYNOPSIS
  2720. <B>pnminvert</B>
  2721. [<I>pnmfile</I>]
  2722. DESCRIPTION
  2723. Reads a portable anymap as input.
  2724. Inverts it black for white and produces a portable anymap as output.
  2725. SEE ALSO
  2726. pnm(5)
  2727. AUTHOR
  2728. ©1989 by Jef Poskanzer.
  2729. </DIV>
  2730. <DIV class="LEFT">
  2731. pnmnlfilt15 February 1993
  2732. </DIV>
  2733. <DIV class="LEFT">NAME
  2734. pnmnlfilt - non-linear filters: smooth, alpha trim mean, optimal
  2735. estimation smoothing, edge enhancement.
  2736. SYNOPSIS
  2737. <B>pnmnlfilt</B>
  2738. alpha
  2739. radius
  2740. [<I>pnmfile</I>]
  2741. DESCRIPTION
  2742. This is something of a swiss army knife filter. It has 3 distinct operating
  2743. modes. In all of the modes each pixel in the image is examined and processed
  2744. according to it and its surrounding pixels values. Rather than using the
  2745. 9 pixels in a 3x3 block, 7 hexagonal area samples are taken, the size of
  2746. the hexagons being controlled by the radius parameter. A radius value of
  2747. 0.3333 means that the 7 hexagons exactly fit into the center pixel (<I>i.e.</I>,
  2748. there will be no filtering effect). A radius value of 1.0 means that
  2749. the 7 hexagons exactly fit a 3x3 pixel array.
  2750. Alpha trimmed mean filter.    (0.0 <= alpha <= 0.5)
  2751. </DIV>
  2752. <DIV class="LEFT">The value of the center pixel will be
  2753. replaced by the mean of the 7 hexagon values, but the 7 values are
  2754. sorted by size and the top and bottom alpha portion of the 7 are
  2755. excluded from the mean.  This implies that an alpha value of 0.0 gives
  2756. the same sort of output as a normal convolution (<I>i.e.</I>, averaging or
  2757. smoothing filter), where radius will determine the ``strength'' of the
  2758. filter. A good value to start from for subtle filtering is alpha = 0.0, radius = 0.55
  2759. For a more blatant effect, try alpha 0.0 and radius 1.0
  2760. </DIV>
  2761. <DIV class="LEFT">An alpha value of 0.5 will cause the median value of the
  2762. 7 hexagons to be used to replace the center pixel value. This sort
  2763. of filter is good for eliminating ``pop'' or single pixel noise from
  2764. an image without spreading the noise out or smudging features on
  2765. the image. Judicious use of the radius parameter will fine tune the
  2766. filtering. Intermediate values of alpha give effects somewhere
  2767. between smoothing and ``pop'' noise reduction. For subtle filtering
  2768. try starting with values of alpha = 0.4, radius = 0.6  For a more blatant
  2769. effect try alpha = 0.5, radius = 1.0
  2770. Optimal estimation smoothing. (1.0 <= alpha <= 2.0)
  2771. </DIV>
  2772. <DIV class="LEFT">This type of filter applies a smoothing filter adaptively over the image.
  2773. For each pixel the variance of the surrounding hexagon values is calculated,
  2774. and the amount of smoothing is made inversely proportional to it. The idea
  2775. is that if the variance is small then it is due to noise in the image, while
  2776. if the variance is large, it is because of ``wanted'' image features. As usual
  2777. the radius parameter controls the effective radius, but it probably advisable to
  2778. leave the radius between 0.8 and 1.0 for the variance calculation to be meaningful.
  2779. The alpha parameter sets the noise threshold, over which less smoothing will be done.
  2780. This means that small values of alpha will give the most subtle filtering effect,
  2781. while large values will tend to smooth all parts of the image. You could start
  2782. with values like alpha = 1.2, radius = 1.0 and try increasing or decreasing the
  2783. alpha parameter to get the desired effect. This type of filter is best for
  2784. filtering out dithering noise in both bitmap and color images.
  2785. Edge enhancement. (-0.1 >= alpha >= -0.9)
  2786. </DIV>
  2787. <DIV class="LEFT">This is the opposite type of filter to the smoothing filter. It enhances
  2788. edges. The alpha parameter controls the amount of edge enhancement, from
  2789. subtle (-0.1) to blatant (-0.9). The radius parameter controls the effective
  2790. radius as usual, but useful values are between 0.5 and 0.9. Try starting
  2791. with values of alpha = 0.3, radius = 0.8
  2792. Combination use.
  2793. </DIV>
  2794. <DIV class="LEFT">The various modes of 
  2795. <B>pnmnlfilt</B>
  2796. can be used one after the other to get the desired result. For instance to
  2797. turn a monochrome dithered image into a grayscale image you could try
  2798. one or two passes of the smoothing filter, followed by a pass of the optimal estimation
  2799. filter, then some subtle edge enhancement. Note that using edge enhancement is
  2800. only likely to be useful after one of the non-linear filters (alpha trimmed mean
  2801. or optimal estimation filter), as edge enhancement is the direct opposite of
  2802. smoothing.
  2803. </DIV>
  2804. <DIV class="LEFT">For reducing color quantization noise in images (<I>i.e.</I>, turning .gif files back into
  2805. 24 bit files) you could try a pass of the optimal estimation filter
  2806. (alpha 1.2, radius 1.0), a pass of the median filter (alpha 0.5, radius 0.55),
  2807. and possibly a pass of the edge enhancement filter.
  2808. Several passes of the optimal estimation filter with declining alpha
  2809. values are more effective than a single pass with a large alpha value.
  2810. As usual, there is a tradeoff between filtering effectiveness and loosing
  2811. detail. Experimentation is encouraged.
  2812. References:
  2813. </DIV>
  2814. <DIV class="LEFT">The alpha-trimmed mean filter is 
  2815. based on the description in IEEE CG&A May 1990 
  2816. Page 23 by Mark E. Lee and Richard A. Redner,
  2817. and has been enhanced to allow continuous alpha adjustment.
  2818. </DIV>
  2819. <DIV class="LEFT">The optimal estimation filter is taken from an article ``Converting Dithered
  2820. Images Back to Gray Scale'' by Allen Stenger, Dr Dobb's Journal, November
  2821. 1992, and this article references ``Digital Image Enhancement and Noise Filtering by
  2822. Use of Local Statistics'', Jong-Sen Lee, IEEE Transactions on Pattern Analysis and
  2823. Machine Intelligence, March 1980.
  2824. </DIV>
  2825. <DIV class="LEFT">The edge enhancement details are from pgmenhance(1),
  2826. which is taken from Philip R. Thompson's ``xim''
  2827. program, which in turn took it from section 6 of ``Digital Halftones by
  2828. Dot Diffusion'', D. E. Knuth, ACM Transaction on Graphics Vol. 6, No. 4,
  2829. October 1987, which in turn got it from two 1976 papers by J. F. Jarvis
  2830. <I>et. al.</I>
  2831. SEE ALSO
  2832. pgmenhance(1), pnmconvol(1), pnm(5)
  2833. Integers and tables may overflow if PPM_MAXMAXVAL is greater than 255.
  2834. AUTHOR
  2835. Graeme W. Gill    graeme@labtam.oz.au
  2836. </DIV>
  2837. <DIV class="LEFT">
  2838. pnmnoraw18 January 1991
  2839. </DIV>
  2840. <DIV class="LEFT">NAME
  2841. pnmnoraw - force a portable anymap into plain format
  2842. SYNOPSIS
  2843. <B>pnmnoraw</B>
  2844. [<I>pnmfile</I>]
  2845. DESCRIPTION
  2846. Reads a portable anymap as input.
  2847. Writes it out in plain (non-raw) format.
  2848. This is fairly useless if you haven't defined the PBMPLUS_RAWBITS
  2849. compile-time option.
  2850. SEE ALSO
  2851. pnm(5)
  2852. AUTHOR
  2853. ©1991 by Jef Poskanzer.
  2854. </DIV>
  2855. <DIV class="LEFT">
  2856. pnmpad12 Dec 1990
  2857. </DIV>
  2858. <DIV class="LEFT">NAME
  2859. pnmpad - add borders to portable anymap
  2860. SYNOPSIS
  2861. pnmpad [-white|-black] [-l#] [-r#] [-t#] [-b#] [pnmfile]
  2862. DESCRIPTION
  2863. Reads a portable anymap as input. Outputs a portable anymap with extra
  2864. borders of the sizes specified. The colour of the borders can be set to
  2865. black or white (default black).
  2866. </DIV>
  2867. <DIV class="LEFT">SEE ALSO
  2868. pbmmake(1), pnmpaste(1), pbm(5)
  2869. AUTHOR
  2870. ©1990 by Angus Duggan.
  2871. ©1989 by Jef Poskanzer.
  2872. </DIV>
  2873. <DIV class="LEFT">Permission to use, copy, modify, and distribute this software and its
  2874. documentation for any purpose and without fee is hereby granted, provided
  2875. that the above copyright notice appear in all copies and that both that
  2876. copyright notice and this permission notice appear in supporting
  2877. documentation.  This software is provided "as is" without express or
  2878. implied warranty.
  2879. </DIV>
  2880. <DIV class="LEFT">
  2881. pnmpaste121 February 1991
  2882. </DIV>
  2883. <DIV class="LEFT">NAME
  2884. pnmpaste - paste a rectangle into a portable anymap
  2885. SYNOPSIS
  2886. <B>pnmpaste</B>
  2887. [<B>-replace</B>|<B>-or</B>|<B>-and</B>
  2888. |<B>-xor</B>]
  2889. <I>frompnmfile x y</I>
  2890. [<I>intopnmfile</I>]
  2891. DESCRIPTION
  2892. Reads two portable anymaps as input.
  2893. Inserts the first anymap into the second at the specified location,
  2894. and produces a portable anymap the same size as the second as output.
  2895. If the second anymap is not specified, it is read from stdin.
  2896. <I>x</I>
  2897. <I>y</I>
  2898. can be negative, in which case they are interpreted
  2899. relative to the right and bottom of the anymap, respectively.
  2900. </DIV>
  2901. <DIV class="LEFT">This tool is most useful in combination with
  2902. <I>pnmcut</I>.
  2903. For instance, if you want to edit a small segment of a large
  2904. image, and your image editor cannot edit the
  2905. large image, you can cut out the segment you are interested in,
  2906. edit it, and then paste it back in.
  2907. </DIV>
  2908. <DIV class="LEFT">Another useful companion tool is
  2909. <I>pbmmask</I>.
  2910. </DIV>
  2911. <DIV class="LEFT">The optional flag specifies the operation to use when doing the paste.
  2912. The default is
  2913. <B>-replace</B>.
  2914. The other, logical operations are only allowed if both input images
  2915. are bitmaps.
  2916. These operations act as if white is TRUE and black is FALSE.
  2917. </DIV>
  2918. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  2919. SEE ALSO
  2920. pnmcut(1), pnminvert(1), pnmarith(1), pnm(5), pbmmask(1)
  2921. AUTHOR
  2922. ©1989, 1991 by Jef Poskanzer.
  2923. </DIV>
  2924. <DIV class="LEFT">
  2925. pnmrotate112 January 1991
  2926. </DIV>
  2927. <DIV class="LEFT">NAME
  2928. pnmrotate - rotate a portable anymap by some angle
  2929. SYNOPSIS
  2930. <B>pnmrotate</B>
  2931. [<B>-noantialias</B>]
  2932. <I>angle</I>
  2933. [<I>pnmfile</I>]
  2934. DESCRIPTION
  2935. Reads a portable anymap as input.
  2936. Rotates it by the specified angle
  2937. and produces a portable anymap as output.
  2938. If the input file is in color, the output will be too,
  2939. otherwise it will be grayscale.
  2940. The angle is in degrees (floating point), measured counter-clockwise.
  2941. It can be negative, but it should be between -90 and 90.
  2942. Also, for rotations greater than 45 degrees you may get better results
  2943. if you first use
  2944. <I>pnmflip</I>
  2945. to do a 90 degree rotation and then
  2946. <I>pnmrotate</I>
  2947. less than 45 degrees back the other direction
  2948. </DIV>
  2949. <DIV class="LEFT">The rotation algorithm is Alan Paeth's three-shear method.
  2950. Each shear is implemented by looping over the source pixels and distributing
  2951. fractions to each of the destination pixels.
  2952. This has an ``anti-aliasing'' effect - it avoids jagged edges and similar
  2953. artifacts.
  2954. However, it also means that the original colors or gray levels in the image
  2955. are modified.
  2956. If you need to keep precisely the same set of colors, you can use the
  2957. <B>-noantialias</B>
  2958. flag.  This does the shearing by moving pixels without changing their values.
  2959. If you want anti-aliasing and don't care about the precise colors, but
  2960. still need a limited *number* of colors, you can run the result through
  2961. <I>ppmquant</I>.
  2962. </DIV>
  2963. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  2964. REFERENCES
  2965. ``A Fast Algorithm for General Raster Rotation'' by Alan Paeth,
  2966. Graphics Interface '86, pp. 77-81.
  2967. SEE ALSO
  2968. pnmshear(1), pnmflip(1), pnm(5), ppmquant(1)
  2969. AUTHOR
  2970. ©1989, 1991 by Jef Poskanzer.
  2971. </DIV>
  2972. <DIV class="LEFT">
  2973. pnmscale112 January 1991
  2974. </DIV>
  2975. <DIV class="LEFT">NAME
  2976. pnmscale - scale a portable anymap
  2977. SYNOPSIS
  2978. <B>pnmscale</B>
  2979. <I>s</I>
  2980. [<I>pnmfile</I>]
  2981. <B>pnmscale</B>
  2982. <B>-xsize</B>|<B>-width</B>|<B>-ysize</B>|
  2983. <B>-height</B>
  2984. <I>s</I>
  2985. [<I>pnmfile</I>]
  2986. <B>pnmscale</B>
  2987. <B>-xscale</B>|<B>-yscale</B>
  2988. <I>s</I>
  2989. [<I>pnmfile</I>]
  2990. <B>pnmscale</B>
  2991. <B>-xscale</B>|<B>-xsize</B>|<B>-width</B>
  2992. <I>s</I>
  2993. <B>-yscale</B>|<B>-ysize</B>|<B>-height</B>
  2994. <I>s</I>
  2995. [<I>pnmfile</I>]
  2996. <B>pnmscale -xysize</B>
  2997. <I>x y</I>
  2998. [<I>pnmfile</I>]
  2999. DESCRIPTION
  3000. Reads a portable anymap as input.
  3001. Scales it by the specified factor or factors and produces a portable
  3002. anymap as output.
  3003. If the input file is in color, the output will be too,
  3004. otherwise it will be grayscale.
  3005. You can both enlarge (scale factor > 1) and reduce (scale factor < 1).
  3006. </DIV>
  3007. <DIV class="LEFT">You can specify one dimension as a pixel size, and the other dimension
  3008. will be scaled correspondingly.
  3009. </DIV>
  3010. <DIV class="LEFT">You can specify one dimension as a scale, and the other dimension
  3011. will not be scaled.
  3012. </DIV>
  3013. <DIV class="LEFT">You can specify different sizes or scales for each axis.
  3014. </DIV>
  3015. <DIV class="LEFT">Or, you can use the special
  3016. <B>-xysize</B>
  3017. flag, which fits the image into
  3018. the specified size without changing the aspect ratio.
  3019. </DIV>
  3020. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  3021. </DIV>
  3022. <DIV class="LEFT">If you enlarge by a factor of 3 or more, you should probably add a
  3023. <I>pnmsmooth</I>
  3024. step; otherwise, you can see the original pixels in the resulting image.
  3025. SEE ALSO
  3026. pbmreduce(1), pnmenlarge(1), pnmsmooth(1), pnm(5)
  3027. AUTHOR
  3028. ©1989, 1991 by Jef Poskanzer.
  3029. </DIV>
  3030. <DIV class="LEFT">
  3031. pnmshear112 January 1991
  3032. </DIV>
  3033. <DIV class="LEFT">NAME
  3034. pnmshear - shear a portable anymap by some angle
  3035. SYNOPSIS
  3036. <B>pnmshear</B>
  3037. [<B>-noantialias</B>]
  3038. <I>angle</I>
  3039. [<I>pnmfile</I>]
  3040. DESCRIPTION
  3041. Reads a portable anymap as input.
  3042. Shears it by the specified angle and produces a portable
  3043. anymap as output.
  3044. If the input file is in color, the output will be too,
  3045. otherwise it will be grayscale.
  3046. The angle is in degrees (floating point), and measures this:
  3047.     +——-+  +——-+
  3048.     | | |
  3049.     | OLD  | | NEW  
  3050.     | | |an
  3051.     +——-+  |gle+——-+
  3052. If the angle is negative, it shears the other way:
  3053.     +——-+  |-an+——-+
  3054.     | | |gl/       /
  3055.     | OLD  | |e/  NEW  /
  3056.     | | |/       /
  3057.     +——-+  +——-+
  3058. The angle should not get too close to 90 or -90, or the resulting
  3059. anymap will be unreasonably wide.
  3060. </DIV>
  3061. <DIV class="LEFT">The shearing is implemented by looping over the source pixels and distributing
  3062. fractions to each of the destination pixels.
  3063. This has an ``anti-aliasing'' effect - it avoids jagged edges and similar
  3064. artifacts.
  3065. However, it also means that the original colors or gray levels in the image
  3066. are modified.
  3067. If you need to keep precisely the same set of colors, you can use
  3068. <B>-noantialias</B>
  3069. flag.  This does the shearing by moving pixels without changing their values.
  3070. If you want anti-aliasing and don't care about the precise colors, but
  3071. still need a limited *number* of colors, you can run the result through
  3072. <I>ppmquant</I>.
  3073. </DIV>
  3074. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  3075. SEE ALSO
  3076. pnmrotate(1), pnmflip(1), pnm(5), ppmquant(1)
  3077. AUTHOR
  3078. ©1989, 1991 by Jef Poskanzer.
  3079. </DIV>
  3080. <DIV class="LEFT">
  3081. pnmtile113 May 1989
  3082. </DIV>
  3083. <DIV class="LEFT">NAME
  3084. pnmtile - replicate a portable anymap into a specified size
  3085. SYNOPSIS
  3086. <B>pnmtile</B>
  3087. <I>width height</I>
  3088. [<I>pnmfile</I>]
  3089. DESCRIPTION
  3090. Reads a portable anymap as input.
  3091. Replicates it until it is the specified size,
  3092. and produces a portable anymap as output.
  3093. SEE ALSO
  3094. pnm(5)
  3095. AUTHOR
  3096. ©1989 by Jef Poskanzer.
  3097. </DIV>
  3098. <DIV class="LEFT">
  3099. pnmtops126 October 1991
  3100. </DIV>
  3101. <DIV class="LEFT">NAME
  3102. pnmtops - convert portable anymap to PostScript
  3103. SYNOPSIS
  3104. <B>pnmtops</B>
  3105. [<B>-scale</B>
  3106. <I>s</I>]
  3107. [<B>-turn</B>|<B>-noturn</B>]
  3108. [<B>-rle</B>|<B>-runlength</B>]
  3109. [<B>-dpi</B>
  3110. <I>n</I>]
  3111. [<B>-width</B>
  3112. <I>n</I>]
  3113. [<B>-height</B>
  3114. <I>n</I>]
  3115. [<I>pnmfile</I>]
  3116. DESCRIPTION
  3117. Reads a portable anymap as input.
  3118. Produces Encapsulated PostScript as output.
  3119. </DIV>
  3120. <DIV class="LEFT">If the input file is in color (PPM), a color PostScript file gets
  3121. written.
  3122. Some PostScript interpreters can't handle color PostScript.
  3123. If you have one of these you will need to run your image through
  3124. <I>ppmtopgm</I>
  3125. first.
  3126. </DIV>
  3127. <DIV class="LEFT">Note that there is no pstopnm
  3128. tool - this transformation is one-way, because a pstopnm tool would
  3129. be a full-fledged PostScript interpreter, which is beyond the scope
  3130. of this package.
  3131. However, see the
  3132. <I>psidtopgm</I>
  3133. tool, which can read grayscale non-runlength PostScript image data.
  3134. Also, if you're willing to install the fairly large GhostScript package,
  3135. it comes with a pstoppm script.
  3136. OPTIONS
  3137. </DIV>
  3138. <DIV class="LEFT">The
  3139. <B>-scale</B>
  3140. flag controls the scale of the result.  The default scale is 1,
  3141. which on a 300 dpi printer such as the Apple LaserWriter makes
  3142. the output look about the same size as the input would if it was displayed
  3143. on a typical 72 dpi screen.
  3144. To get one PNM pixel per 300 dpi printer pixel, use ``-scale 0.25''.
  3145. </DIV>
  3146. <DIV class="LEFT">The
  3147. <B>-turn</B>
  3148. <B>-noturn</B>
  3149. flags control whether the image gets turned 90 degrees.
  3150. Normally, if an image is wider than it is tall, it gets turned
  3151. automatically to better fit the page.
  3152. If the
  3153. <B>-turn</B>
  3154. flag is specified, it will be turned no matter what its shape; and if the
  3155. <B>-noturn</B>
  3156. flag is specified, it will
  3157. <I>not</I>
  3158. be turned no matter what its shape.
  3159. </DIV>
  3160. <DIV class="LEFT">The
  3161. <B>-rle</B>
  3162. <B>-runlength</B>
  3163. flag specifies run-length compression.  This may save
  3164. time if the host-to-printer link is slow; but normally the printer's processing
  3165. time dominates, so
  3166. <B>-rle</B>
  3167. makes things slower.
  3168. </DIV>
  3169. <DIV class="LEFT">The
  3170. <B>-dpi</B>
  3171. flag lets you specify the dots per inch of your output device.
  3172. The default is 300 dpi.
  3173. In theory PostScript is device-independent and you don't have to
  3174. worry about this, but in practice its raster rendering can have
  3175. unsightly bands if the device pixels and the image pixels aren't
  3176. in sync.
  3177. </DIV>
  3178. <DIV class="LEFT">The
  3179. <B>-width</B>
  3180. <B>-height</B>
  3181. flags let you specify the size of the page.
  3182. The default is 8.5 inches by 11 inches.
  3183. </DIV>
  3184. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  3185. SEE ALSO
  3186. pnm(5), psidtopgm(1)
  3187. AUTHOR
  3188. ©1989, 1991 by Jef Poskanzer.
  3189. </DIV>
  3190. <DIV class="LEFT">
  3191. pnmtorast112 January 1991
  3192. </DIV>
  3193. <DIV class="LEFT">NAME
  3194. pnmtorast - convert a portable pixmap into a Sun rasterfile
  3195. SYNOPSIS
  3196. <B>pnmtorast</B>
  3197. [<B>-standard</B>|<B>-rle</B>]
  3198. [<I>pnmfile</I>]
  3199. DESCRIPTION
  3200. Reads a portable pixmap as input.
  3201. Produces a Sun rasterfile as output.
  3202. </DIV>
  3203. <DIV class="LEFT">Color values in Sun rasterfiles are eight bits wide, so
  3204. <I>pnmtorast</I>
  3205. will automatically scale colors to have a maxval of 255.
  3206. An extra
  3207. <I>pnmdepth</I>
  3208. step is not necessary.
  3209. OPTIONS
  3210. </DIV>
  3211. <DIV class="LEFT">The
  3212. <B>-standard</B>
  3213. flag forces the result to be in RT_STANDARD form; the
  3214. <B>-rle</B>
  3215. flag, RT_BYTE_ENCODED, which is smaller but, well, less standard.
  3216. The default is
  3217. <B>-rle</B>.
  3218. </DIV>
  3219. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  3220. SEE ALSO
  3221. rasttopnm(1), pnm(5)
  3222. AUTHOR
  3223. ©1989, 1991 by Jef Poskanzer.
  3224. </DIV>
  3225. <DIV class="LEFT">
  3226. pnmtosir120 March 1991
  3227. </DIV>
  3228. <DIV class="LEFT">NAME
  3229. pnmtosir - convert a portable anymap into a Solitaire format
  3230. SYNOPSIS
  3231. <B>pnmtosir</B>
  3232. [<I>pnmfile</I>]
  3233. DESCRIPTION
  3234. Reads a portable anymap as input.
  3235. Produces a Solitaire Image Recorder format.
  3236. </DIV>
  3237. <DIV class="LEFT">pnmtosir produces an MGI TYPE 17 file for
  3238. <I>pbm</I>
  3239. <I>pgm</I>
  3240. files.
  3241. <I>ppm</I>,
  3242. it writes a MGI TYPE 11 file.
  3243. SEE ALSO
  3244. sirtopnm(1), pnm(5)
  3245. </DIV>
  3246. <DIV class="LEFT">AUTHOR
  3247. ©1991 by Marvin Landis.
  3248. </DIV>
  3249. <DIV class="LEFT">
  3250. pnmtotiff113 January 1991
  3251. </DIV>
  3252. <DIV class="LEFT">NAME
  3253. pnmtotiff - convert a a portable anymap into a TIFF file
  3254. SYNOPSIS
  3255. <B>pnmtotiff</B>
  3256. [<B>-none</B>|<B>-packbits</B>|
  3257. <B>-lzw</B>|<B>-g3</B>|<B>-g4</B>]
  3258. [<B>-2d</B>]
  3259. [<B>-fill</B>]
  3260. [<B>-predictor</B>
  3261. <I>n</I>]
  3262. [<B>-msb2lsb</B>|<B>-lsb2msb</B>]
  3263. [<B>-rowsperstrip</B>
  3264. <I>n</I>]
  3265. [<I>pnmfile</I>]
  3266. DESCRIPTION
  3267. Reads a portable anymap as input.
  3268. Produces a TIFF file as output.
  3269. OPTIONS
  3270. </DIV>
  3271. <DIV class="LEFT">By default,
  3272. <I>pnmtotiff</I>
  3273. creates a TIFF file with LZW compression.
  3274. This is your best bet most of the time.
  3275. However, some TIFF readers can't deal with it.
  3276. If you want to try another compression scheme or tweak some of the
  3277. other even more obscure output options, there are a number of
  3278. flags to play with.
  3279. </DIV>
  3280. <DIV class="LEFT">The
  3281. <B>-none</B>,
  3282. <B>-packbits</B>,
  3283. <B>-lzw</B>,
  3284. <B>-g3</B>,
  3285. <B>-g4</B>
  3286. options are used to override the default and set the compression
  3287. scheme used in creating the output file.  The CCITT Group 3 and Group
  3288. 4 compression algorithms can only be used with bilevel data.  The
  3289. <B>-2d</B>
  3290. <B>-fill</B>
  3291. options are meaningful only with Group 3 compression:
  3292. <B>-2d</B>
  3293. requests 2-dimensional encoding, while
  3294. <B>-fill</B>
  3295. requests that each encoded scanline be zero-filled to a byte boundry.
  3296. <B>-predictor</B>
  3297. option is only meaningful with LZW compression: a predictor value of 2
  3298. causes each scanline of the output image to undergo horizontal
  3299. differencing before it is encoded; a value of 1 forces each scanline
  3300. to be encoded without differencing.
  3301. By default,
  3302. <I>pnmtotiff</I>
  3303. creates a TIFF file with msb-to-lsb fill order.
  3304. <B>-msb2lsb</B>
  3305. <B>-lsb2msb</B>
  3306. options are used to override the default and set the fill order used
  3307. in creating the file.
  3308. <B>-rowsperstrip</B>
  3309. option can be used to set the number of rows (scanlines) in each
  3310. strip of data in the output file.  By default, the output file has
  3311. the number of rows per strip set to a value that will ensure each
  3312. strip is no more than 8 kilobytes long.
  3313. This program is not self-contained.  To use it you must fetch the
  3314. TIFF Software package listed in the OTHER.SYSTEMS file and configure
  3315. PBMPLUS to use libtiff.  See PBMPLUS's Makefile for details on this
  3316. configuration.
  3317. SEE ALSO
  3318. tifftopnm(1), pnm(5)
  3319. AUTHOR
  3320. Derived by Jef Poskanzer from ras2tiff.c, which is
  3321. ©1990 by Sun Microsystems, Inc.
  3322. Author: Patrick J. Naughton (naughton@wind.sun.com).
  3323. </DIV>
  3324. <DIV class="LEFT">
  3325. pnmtoxwd124 September 1991
  3326. </DIV>
  3327. <DIV class="LEFT">NAME
  3328. pnmtoxwd - convert a portable anymap into an X11 window dump
  3329. SYNOPSIS
  3330. <B>pnmtoxwd</B>
  3331. [<B>-pseudodepth</B>
  3332. <I>n</I>]
  3333. [<B>-directcolor</B>]
  3334. [<I>pnmfile</I>]
  3335. DESCRIPTION
  3336. Reads a portable anymap as input.
  3337. Produces an X11 window dump as output.
  3338. This window dump can be displayed using the xwud tool.
  3339. </DIV>
  3340. <DIV class="LEFT">Normally, pnmtoxwd produces a StaticGray dump file for
  3341. <I>pbm</I>
  3342. <I>pgm</I>
  3343. files.
  3344. <I>ppm</I>,
  3345. it writes a PseudoColor dump file if there are up
  3346. to 256 colors in the input, and a DirectColor dump file otherwise.
  3347. <B>-directcolor</B>
  3348. flag can be used to force a DirectColor dump.
  3349. And the
  3350. <B>-pseudodepth</B>
  3351. flag can be used to change the depth of PseudoColor dumps from the default
  3352. of 8 bits / 256 colors.
  3353. SEE ALSO
  3354. xwdtopnm(1), pnm(5), xwud(1)
  3355. AUTHOR
  3356. ©1989, 1991 by Jef Poskanzer.
  3357. </DIV>
  3358. <DIV class="LEFT">
  3359. ppm527 September 1991
  3360. </DIV>
  3361. <DIV class="LEFT">NAME
  3362. ppm - portable pixmap file format
  3363. DESCRIPTION
  3364. The portable pixmap format is a lowest common denominator color image
  3365. file format.
  3366. The definition is as follows:
  3367.   STYLE="" SRC="img29.png"
  3368.  ALT="\begin{IPlist}
  3369. \IPitem{{-}}
  3370. A \lq\lq magic number'' for identifying the file type.
  3371. A ...
  3372. ...omments).
  3373. \IPitem{{-}}
  3374. No line should be longer than 70 characters.
  3375. \end{IPlist}">
  3376. </DIV>
  3377. <DIV class="LEFT">Here is an example of a small pixmap in this format:
  3378. # feep.ppm
  3379.  0  0  0    0  0  0    0  0  0   15  0 15
  3380.  0  0  0    0 15  7    0  0  0    0  0  0
  3381.  0  0  0    0  0  0    0 15  7    0  0  0
  3382. 15  0 15    0  0  0    0  0  0    0  0  0
  3383. </DIV>
  3384. <DIV class="LEFT">Programs that read this format should be as lenient as possible,
  3385. accepting anything that looks remotely like a pixmap.
  3386. </DIV>
  3387. <DIV class="LEFT">There is also a variant on the format, available
  3388. by setting the RAWBITS option at compile time.  This variant is
  3389. different in the following ways:
  3390.   STYLE="" SRC="img30.png"
  3391.  ALT="\begin{IPlist}
  3392. \IPitem{{-}}
  3393. The \lq\lq magic number'' is \lq\lq P6'' instead of \lq\lq P3''.
  3394. \I...
  3395. ...{-}}
  3396. The files are smaller and many times faster to read and write.
  3397. \end{IPlist}">
  3398. </DIV>
  3399. <DIV class="LEFT">Note that this raw format can only be used for maxvals less than
  3400. or equal to 255.
  3401. If you use the
  3402. <I>ppm</I>
  3403. library and try to write a file with a larger maxval,
  3404. it will automatically fall back on the slower but more general plain
  3405. format.
  3406. SEE ALSO
  3407. giftoppm(1), gouldtoppm(1), ilbmtoppm(1), imgtoppm(1), mtvtoppm(1),
  3408. pcxtoppm(1), pgmtoppm(1), pi1toppm(1), picttoppm(1), pjtoppm(1), qrttoppm(1),
  3409. rawtoppm(1), rgb3toppm(1), sldtoppm(1), spctoppm(1), sputoppm(1), tgatoppm(1),
  3410. ximtoppm(1), xpmtoppm(1), yuvtoppm(1),
  3411. ppmtoacad(1), ppmtogif(1), ppmtoicr(1), ppmtoilbm(1), ppmtopcx(1), ppmtopgm(1),
  3412. ppmtopi1(1), ppmtopict(1), ppmtopj(1), ppmtopuzz(1), ppmtorgb3(1),
  3413. ppmtosixel(1), ppmtotga(1), ppmtouil(1), ppmtoxpm(1), ppmtoyuv(1),
  3414. ppmdither(1), ppmforge(1), ppmhist(1), ppmmake(1), ppmpat(1), ppmquant(1),
  3415. ppmquantall(1), ppmrelief(1),
  3416. pnm(5), pgm(5), pbm(5)
  3417. AUTHOR
  3418. ©1989, 1991 by Jef Poskanzer.
  3419. </DIV>
  3420. <DIV class="LEFT">
  3421. ppmbrighten120 Nov 1990
  3422. </DIV>
  3423. <DIV class="LEFT">NAME
  3424. ppmbrighten - change an images Saturation and Value from an HSV map
  3425. SYNOPSIS
  3426. ppmbrighten [-n] [-s <+- saturation>] [-v <+- value>] <ppmfile>
  3427. DESCRIPTION
  3428. Reads a portable pixmap as input.
  3429. Converts the image from RGB space to HSV space and changes
  3430. the Value by <+- value> as a percentage.
  3431. Likewise with the Saturation.
  3432. Doubling the Value would involve
  3433. </DIV>
  3434. <DIV class="LEFT">
  3435. ppmbrighten -v 100
  3436. </DIV>
  3437. <DIV class="LEFT">
  3438. to add 100 percent to the Value.
  3439. </DIV>
  3440. <DIV class="LEFT">The 'n' option normalizes the Value to exist between 0 and 1
  3441. (normalized).
  3442. SEE ALSO
  3443. pgmnorm(1), ppm(5)
  3444. AUTHOR
  3445. ©1990 by Brian Moffet.
  3446. ©1989 by Jef Poskanzer.
  3447. </DIV>
  3448. <DIV class="LEFT">Permission to use, copy, modify, and distribute this software and its
  3449. documentation for any purpose and without fee is hereby granted, provided
  3450. that the above copyright notice appear in all copies and that both that
  3451. copyright notice and this permission notice appear in supporting
  3452. documentation.  This software is provided "as is" without express or
  3453. implied warranty.
  3454. NOTES
  3455. This program does not change the number of colors.
  3456. </DIV>
  3457. <DIV class="LEFT">
  3458. ppmchange13 December 1993
  3459. </DIV>
  3460. <DIV class="LEFT">NAME
  3461. ppmchange - change all pixels of one color to another in a portable pixmap
  3462. SYNOPSIS
  3463. <B>ppmchange</B>
  3464. <I>colorspec1 colorspec2</I>
  3465. [<I>ppmfile</I>]
  3466. DESCRIPTION
  3467. Reads a portable pixmap as input.
  3468. Changes all pixels of colorspec1 to colorspec2, leaving all others unchanged.
  3469. </DIV>
  3470. <DIV class="LEFT">The color can be specified in five ways:
  3471.   STYLE="" SRC="img31.png"
  3472.  ALT="\begin{TPlist}{o}
  3473. \item[{o}]
  3474. A name, assuming
  3475. that a pointer to an X11-style col...
  3476. ...is style was added before MIT came up with the similar rgbi style.)
  3477. \end{TPlist}">
  3478. </DIV>
  3479. <DIV class="LEFT">SEE ALSO
  3480. pgmtoppm(1), ppm(5)
  3481. AUTHOR
  3482. Wilson H. Bent. Jr. (whb@usc.edu)
  3483. </DIV>
  3484. <DIV class="LEFT">
  3485. ppmdim116 November 1993
  3486. </DIV>
  3487. <DIV class="LEFT">NAME
  3488. ppmdim - dim a portable pixmap down to total blackness
  3489. SYNOPSIS
  3490. ppmdim
  3491. <I>dimfactor</I>
  3492. [<I>ppmfile</I>]
  3493. DESCRIPTION
  3494. Reads a portable pixmap as input. Diminishes its brightness by
  3495. the specified dimfactor down to total blackness.
  3496. The dimfactor may be in the range from 0.0 (total blackness,
  3497. deep night, nada, null, nothing) to 1.0 (original picture's
  3498. brightness).
  3499. </DIV>
  3500. <DIV class="LEFT">As
  3501. <I>pnmgamma</I>
  3502. does not do the brightness correction in the way I
  3503. wanted it, this small program was written.
  3504. </DIV>
  3505. <DIV class="LEFT">ppmdim is similar to
  3506. <I>ppmbrighten</I>
  3507. , but not exactly the same.
  3508. SEE ALSO
  3509. ppm(5), ppmflash(1), pnmgamma(1), ppmbrighten(1)
  3510. AUTHOR
  3511. Copyright (C) 1993 by Frank Neumann
  3512. </DIV>
  3513. <DIV class="LEFT">
  3514. ppmdist122 July 1992
  3515. </DIV>
  3516. <DIV class="LEFT">NAME
  3517. ppmdist - simplistic grayscale assignment for machine generated, color images
  3518. SYNOPSIS
  3519. <B>ppmdist</B>
  3520. [<B>-intensity</B>|<B>-frequency</B>]
  3521. [<I>ppmfile</I>]
  3522. DESCRIPTION
  3523. Reads a portable pixmap as input, performs a simplistic grayscale
  3524. assignment intended for use with grayscale or bitmap printers.
  3525. </DIV>
  3526. <DIV class="LEFT">Often conversion from ppm to pgm will yield an image with contrast too
  3527. low for good printer output.  The program maximizes contrast between
  3528. the gray levels output.
  3529. </DIV>
  3530. <DIV class="LEFT">A ppm input of n colors is read, and a pgm of n gray levels is written.
  3531. The gray levels take on the values 0..n-1, while maxval takes on n-1.
  3532. </DIV>
  3533. <DIV class="LEFT">The mapping from color to stepped grayscale can be performed in order
  3534. of input pixel intensity, or input pixel frequency (number of repetitions).
  3535. OPTIONS
  3536.   STYLE="" SRC="img32.png"
  3537.  ALT="\begin{TPlist}{}
  3538. \item[{}]
  3539. {\bf -frequency}
  3540. Sort input colors by the number of t...
  3541. ...ng to evenly
  3542. distributed graylevels of output. This is the default.
  3543. \end{TPlist}">
  3544. </DIV>
  3545. <DIV class="LEFT">BUGS
  3546. Helpful only for images with a very small number of colors.
  3547. Perhaps should have been an option to ppmtopgm(1).
  3548. SEE ALSO
  3549. ppmtopgm(1), ppmhist(1), ppm(5)
  3550. AUTHOR
  3551. ©1993 by Dan Stromberg.
  3552. </DIV>
  3553. <DIV class="LEFT">
  3554. ppmdither114 July 1991
  3555. </DIV>
  3556. <DIV class="LEFT">NAME
  3557. ppmdither - ordered dither for color images
  3558. SYNOPSIS
  3559. <B>ppmdither</B>
  3560. [<B>-dim</B>
  3561. <I>dimension</I>]
  3562. [<B>-red</B>
  3563. <I>shades</I>]
  3564. [<B>-green</B>
  3565. <I>shades</I>]
  3566. [<B>-blue</B>
  3567. <I>shades</I>]
  3568. [<I>ppmfile</I>]
  3569. DESCRIPTION
  3570. Reads a portable pixmap as input, and applies dithering to it to reduce
  3571. the number of colors used down to the specified number of shades for
  3572. each primary.
  3573. The default number of shades is red=5, green=9, blue=5, for
  3574. a total of 225 colors.
  3575. To convert the image to a binary rgb format 
  3576. suitable for color printers, use -red 2 -green 2 -blue 2.
  3577. The maximum
  3578. number of colors that can be used is 256 and can be computed as the 
  3579. product of the number of red, green and blue shades.
  3580. OPTIONS
  3581.   STYLE="" SRC="img33.png"
  3582.  ALT="\begin{TPlist}{{\bf -dim}{\it\ dimension}
  3583. \item[{{\bf -dim}{\it\ dimension}
  3584. }]...
  3585. ...\it\ shades}
  3586. The number of blue shades to be used; minimum of 2.
  3587. \end{TPlist}">
  3588. </DIV>
  3589. <DIV class="LEFT">SEE ALSO
  3590. pnmdepth(1), ppmquant(1), ppm(5)
  3591. AUTHOR
  3592. ©1991 by Christos Zoulas.
  3593. </DIV>
  3594. <DIV class="LEFT">
  3595. ppmflash116 November 1993
  3596. </DIV>
  3597. <DIV class="LEFT">NAME
  3598. ppmflash - brighten a picture up to complete white-out
  3599. SYNOPSIS
  3600. ppmflash 
  3601. <I>flashfactor</I>
  3602. [<I>ppmfile</I>]
  3603. DESCRIPTION
  3604. Reads a portable pixmap as input. Increases its brightness by
  3605. the specified flashfactor up to a total white-out image.
  3606. The flashfactor may be in the range from 0.0 (original picture's
  3607. brightness) to 1.0 (full white-out, The Second After).
  3608. </DIV>
  3609. <DIV class="LEFT">As
  3610. <I>pnmgamma</I>
  3611. does not do the brightness correction in the way I
  3612. wanted it, this small program was written.
  3613. </DIV>
  3614. <DIV class="LEFT">This program is similar to
  3615. <I>ppmbrighten</I>
  3616. , but not exactly the same.
  3617. SEE ALSO
  3618. ppm(5), ppmdim(1), pnmgamma(1), ppmbrighten(1)
  3619. AUTHOR
  3620. Copyright (C) 1993 by Frank Neumann
  3621. </DIV>
  3622. <DIV class="LEFT">
  3623. ppmforge125 October 1991
  3624. </DIV>
  3625. <DIV class="LEFT">NAME
  3626. ppmforge - fractal forgeries of clouds, planets, and starry skies
  3627. SYNOPSIS
  3628. </DIV>
  3629. <DIV class="LEFT"><B>ppmforge</B>
  3630. [<B>-clouds</B>]
  3631. 'in +9n
  3632. [<B>-night</B>]
  3633. [<B>-dimension</B>
  3634. <I>dimen</I>]
  3635. [<B>-hour</B>
  3636. <I>hour</I>]
  3637. [<B>-inclination|-tilt</B>
  3638. <I>angle</I>]
  3639. [<B>-mesh</B>
  3640. <I>size</I>]
  3641. [<B>-power</B>
  3642. <I>factor</I>]
  3643. [<B>-glaciers</B>
  3644. <I>level</I>]
  3645. [<B>-ice</B>
  3646. <I>level</I>]
  3647. [<B>-saturation</B>
  3648. <I>sat</I>]
  3649. [<B>-seed</B>
  3650. <I>seed</I>]
  3651. [<B>-stars</B>
  3652. <I>fraction</I>]
  3653. [<B>-xsize|-width</B>
  3654. <I>width</I>]
  3655. [<B>-ysize|-height</B>
  3656. <I>height</I>]
  3657. -4.5em
  3658. DESCRIPTION
  3659. <B>ppmforge</B>
  3660. generates three kinds of ``random fractal forgeries,'' the term coined
  3661. by Richard F. Voss of the IBM Thomas J. Watson Research Center for
  3662. seemingly realistic pictures of natural objects generated by simple
  3663. algorithms embodying randomness and fractal self-similarity.  The
  3664. techniques used by
  3665. <B>ppmforge</B>
  3666. are essentially those
  3667. given by Voss[1], particularly the technique of spectral synthesis
  3668. explained in more detail by Dietmar Saupe[2].
  3669. </DIV>
  3670. <DIV class="LEFT">The program generates two varieties of pictures: planets and clouds,
  3671. which are just different renderings of data generated in an identical
  3672. manner, illustrating the unity of the fractal structure of these very
  3673. different objects.  A third type of picture, a starry sky, is
  3674. synthesised directly from pseudorandom numbers.
  3675. </DIV>
  3676. <DIV class="LEFT">The generation of planets or clouds begins with the preparation of an
  3677. array of random data in the frequency domain.  The size of this
  3678. array, the ``mesh size,'' can be set with the
  3679. <B>-mesh</B>
  3680. option; the larger the mesh the more realistic the pictures but the
  3681. calculation time and memory requirement increases as the square of the
  3682. mesh size.  The fractal dimension, which you can specify with the
  3683. <B>-dimension</B>
  3684. option, determines the roughness of the terrain on the planet or the
  3685. scale of detail in the clouds.  As the fractal dimension is increased,
  3686. more high frequency components are added into the random mesh.
  3687. </DIV>
  3688. <DIV class="LEFT">Once the mesh is generated, an inverse two dimensional Fourier
  3689. transform is performed upon it.  This converts the original random
  3690. frequency domain data into spatial amplitudes.  We scale the real
  3691. components that result from the Fourier transform into numbers from 0
  3692. to 1 associated with each point on the mesh.  You can further
  3693. modify this number by applying a ``power law scale'' to it with the
  3694. <B>-power</B>
  3695. option.   Unity scale
  3696. leaves the numbers unmodified; a power scale of 0.5 takes the square
  3697. root of the numbers in the mesh, while a power scale of 3 replaces the
  3698. numbers in the mesh with their cubes.  Power law scaling is best
  3699. envisioned by thinking of the data as representing the elevation of
  3700. terrain; powers less than 1 yield landscapes with vertical scarps that
  3701. look like glacially-carved valleys; powers greater than one make
  3702. fairy-castle spires (which require large mesh sizes and high
  3703. resolution for best results).
  3704. </DIV>
  3705. <DIV class="LEFT">After these calculations, we have a array of the specified size
  3706. containing numbers that range from 0 to 1.  The pixmaps are generated as
  3707. follows:
  3708.   STYLE="" SRC="img34.png"
  3709.  ALT="\begin{TPlist}{{\bf Clouds}}
  3710. \item[{{\bf Clouds}}]
  3711. A colour map is created that ...
  3712. ...om numbers is used to generate stars with a
  3713. user specified density.
  3714. \end{TPlist}">
  3715. </DIV>
  3716. <DIV class="LEFT">Cloud pictures always contain 256 or fewer colours and may be
  3717. displayed on most colour mapped devices without further processing.
  3718. Planet pictures often contain tens of thousands of colours which
  3719. must be compressed with
  3720. <B>ppmquant</B>
  3721. <B>ppmdither</B>
  3722. before encoding in a colour mapped format.  If the display resolution is
  3723. high enough,
  3724. <B>ppmdither</B>
  3725. generally produces better looking planets.
  3726. <B>ppmquant</B>
  3727. tends to create discrete colour bands, particularly in the oceans,
  3728. which are unrealistic and distracting.  The number of colours in starry
  3729. sky pictures generated with the
  3730. <B>-night</B>
  3731. option depends on the value specified for
  3732. <B>-saturation</B>.
  3733. Small values limit the colour temperature distribution of the stars
  3734. and reduce the number of colours in the image.
  3735. If the
  3736. <B>-saturation</B>
  3737. is set to 0, none of the stars will be coloured and the resulting
  3738. image will never contain more than 256 colours.
  3739. Night sky pictures with many different star colours often look
  3740. best when colour compressed by
  3741. <B>pnmdepth</B>
  3742. rather than
  3743. <B>ppmquant</B>
  3744. <B>ppmdither</B>.
  3745. <I>newmaxval</I>
  3746. settings of 63, 31, or 15 with
  3747. <B>pnmdepth</B>
  3748. to reduce the number of colours in the picture to 256 or fewer.
  3749. OPTIONS
  3750.   STYLE="" SRC="img35.png"
  3751.  ALT="\begin{TPlist}{{\bf -clouds}}
  3752. \item[{{\bf -clouds}}]
  3753. Generate clouds. A pixmap o...
  3754. ...exceeds the width, the width will be increased to equal the height.
  3755. \end{TPlist}">
  3756. </DIV>
  3757. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  3758. </DIV>
  3759. <DIV class="LEFT">The algorithms require the output pixmap to be at least as wide as it
  3760. is high, and the width to be an even number of pixels.  These
  3761. constraints are enforced by increasing the size of the requested
  3762. pixmap if necessary.
  3763. </DIV>
  3764. <DIV class="LEFT">You may have to reduce the FFT mesh size on machines with 16 bit
  3765. integers and segmented pointer architectures.
  3766. SEE ALSO
  3767. <B>pnmcut</B>(1),
  3768. <B>pnmdepth</B>(1),
  3769. <B>ppmdither</B>(1),
  3770. <B>ppmquant</B>(1),
  3771. <B>ppm</B>(5)
  3772.   STYLE="" SRC="img36.png"
  3773.  ALT="\begin{TPlist}{[1] }
  3774. \item[{[1] }]
  3775. Voss, Richard F., \lq\lq Random Fractal Forgeries,...
  3776. ...s., The Science Of Fractal Images,
  3777. New York: Springer Verlag, 1988.
  3778. \end{TPlist}">
  3779. </DIV>
  3780. <DIV class="LEFT">AUTHOR
  3781.     John Walker
  3782.     Autodesk SA
  3783.     Avenue des Champs-Montants 14b
  3784.     CH-2074 MARIN
  3785.     Suisse/Schweiz/Svizzera/Svizra/Switzerland
  3786.   STYLE="" SRC="img23.png"
  3787.  ALT="\begin{TPlist}{Usenet:}
  3788. \item[{Usenet:}]
  3789. kelvin@Autodesk.com
  3790. \item[{Fax:}]
  3791. 038/33 88 15
  3792. \item[{Voice:}]
  3793. 038/33 76 33
  3794. \end{TPlist}">
  3795. </DIV>
  3796. <DIV class="LEFT">Permission to use, copy, modify, and distribute this software and its
  3797. documentation for any purpose and without fee is hereby granted,
  3798. without any conditions or restrictions.  This software is provided ``as
  3799. is'' without express or implied warranty.
  3800. </DIV>
  3801. <DIV class="LEFT"><B>PLUGWARE!</B>
  3802. If you like this kind of stuff, you may also enjoy ``James Gleick's
  3803. Chaos–The Software'' for MS-DOS, available for $59.95 from your
  3804. local software store or directly from Autodesk, Inc., Attn: Science
  3805. Series, 2320 Marinship Way, Sausalito, CA 94965, USA.  Telephone:
  3806. (800) 688-2344 toll-free or, outside the U.S. (415) 332-2344 Ext
  3807. 4886.  Fax: (415) 289-4718.  ``Chaos–The Software'' includes a more
  3808. comprehensive fractal forgery generator which creates
  3809. three-dimensional landscapes as well as clouds and planets, plus five
  3810. more modules which explore other aspects of Chaos.  The user guide of
  3811. more than 200 pages includes an introduction by James Gleick and
  3812. detailed explanations by Rudy Rucker of the mathematics and algorithms
  3813. used by each program.
  3814. </DIV>
  3815. <DIV class="LEFT">
  3816. ppmhist103 April 1989
  3817. </DIV>
  3818. <DIV class="LEFT">NAME
  3819. ppmhist - print a histogram of a portable pixmap
  3820. SYNOPSIS
  3821. <B>ppmhist</B>
  3822. [<I>ppmfile</I>]
  3823. DESCRIPTION
  3824. Reads a portable pixmap as input.
  3825. Generates a histogram of the colors in the pixmap.
  3826. SEE ALSO
  3827. ppm(5), pgmhist(1)
  3828. AUTHOR
  3829. ©1989 by Jef Poskanzer.
  3830. </DIV>
  3831. <DIV class="LEFT">
  3832. ppmmake124 September 1991
  3833. </DIV>
  3834. <DIV class="LEFT">NAME
  3835. ppmmake - create a pixmap of a specified size and color
  3836. SYNOPSIS
  3837. <B>ppmmake</B>
  3838. <I>color width height</I>
  3839. DESCRIPTION
  3840. Produces a portable pixmap of the specified color, width, and height.
  3841. </DIV>
  3842. <DIV class="LEFT">The color can be specified in five ways:
  3843.   STYLE="" SRC="img37.png"
  3844.  ALT="\begin{TPlist}{o}
  3845. \item[{o}]
  3846. A name, assuming
  3847. that a pointer to an X11-style col...
  3848. ...is style was added before MIT came up with the similar rgbi style.)
  3849. \end{TPlist}">
  3850. </DIV>
  3851. <DIV class="LEFT">SEE ALSO
  3852. ppm(5), pbmmake(1)
  3853. AUTHOR
  3854. ©1991 by Jef Poskanzer.
  3855. </DIV>
  3856. <DIV class="LEFT">
  3857. ppmmix116 November 1993
  3858. </DIV>
  3859. <DIV class="LEFT">NAME
  3860. ppmmix - blend together two portable pixmaps
  3861. SYNOPSIS
  3862. ppmmix 
  3863. <I>fadefactor</I>
  3864. <I>ppmfile1 ppmfile2</I>
  3865. DESCRIPTION
  3866. Reads two portable pixmaps as input. Mixes them together using the
  3867. specified fade factor. The fade factor may be in the range from 0.0
  3868. (only ppmfile1's image data) to 1.0 (only ppmfile2's image data).
  3869. Anything in between gains a smooth blend between the two images.
  3870. </DIV>
  3871. <DIV class="LEFT">The two pixmaps must have the same size.
  3872. SEE ALSO
  3873. ppm(5)
  3874. AUTHOR
  3875. ©1993 by Frank Neumann.
  3876. </DIV>
  3877. <DIV class="LEFT">
  3878. ppmntsc116 November 1993
  3879. </DIV>
  3880. <DIV class="LEFT">NAME
  3881. ppmntsc - make a portable pixmap look like taken from an American TV
  3882. SYNOPSIS
  3883. ppmntsc
  3884. <I>dimfactor</I>
  3885. [<I>ppmfile</I>]
  3886. DESCRIPTION
  3887. Reads a portable pixmap as input. Dims every other row of image data
  3888. down by the specified dim factor. This factor may be in the range of
  3889. 0.0 (the alternate lines are totally black) to 1.0 (original image).
  3890. </DIV>
  3891. <DIV class="LEFT">This creates an effect similar to what I've once seen in the video 
  3892. clip 'You could be mine' by Guns'n'Roses. In the scene I'm talking about you 
  3893. can see John Connor on his motorbike, looking up from the water trench (?) 
  3894. he's standing in. While the camera pulls back, the image gets 'normal' by 
  3895. brightening up the alternate rows of it. I thought this would be an 
  3896. interesting effect to try in MPEG. I did not yet check this out, however. 
  3897. Try for yourself.
  3898. SEE ALSO
  3899. ppm(5), ppmdim(1)
  3900. AUTHOR
  3901. ©1993 by Frank Neumann
  3902. </DIV>
  3903. <DIV class="LEFT">
  3904. ppmpat104 September 1989
  3905. </DIV>
  3906. <DIV class="LEFT">NAME
  3907. ppmpat - make a pretty pixmap
  3908. SYNOPSIS
  3909. <B>ppmpat</B>
  3910. <B>-gingham2</B>|<B>-g2</B>|<B>-gingham3</B>|
  3911. <B>-g3</B>|<B>-madras</B>|<B>-tartan</B>|
  3912. <B>-poles</B>|<B>-squig</B>|<B>-camo</B>|
  3913. <B>-anticamo</B>
  3914. <I>width height</I>
  3915. DESCRIPTION
  3916. Produces a portable pixmap of the specified width and height,
  3917. with a pattern in it.
  3918. </DIV>
  3919. <DIV class="LEFT">This program is mainly to demonstrate use of the ppmdraw routines, a
  3920. simple but powerful drawing library.
  3921. See the ppmdraw.h include file for more info on using these routines.
  3922. Still, some of the patterns can be rather pretty.
  3923. If you have a color workstation, something like
  3924. <B>ppmpat -squig 300 300 | ppmquant 128</B>
  3925. should generate a nice background.
  3926. OPTIONS
  3927. </DIV>
  3928. <DIV class="LEFT">The different flags specify various different pattern types:
  3929.   STYLE="" SRC="img38.png"
  3930.  ALT="\begin{TPlist}{{\bf -gingham2}}
  3931. \item[{{\bf -gingham2}}]
  3932. A gingham check pattern...
  3933. ...tra-bright colors.
  3934. May need to be run through
  3935. {\it ppmquant}{\rm .}
  3936. \end{TPlist}">
  3937. </DIV>
  3938. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  3939. REFERENCES
  3940. Some of the patterns are from ``Designer's Guide to Color 3'' by Jeanne Allen.
  3941. SEE ALSO
  3942. pnmtile(1), ppmquant(1), ppm(5)
  3943. AUTHOR
  3944. ©1989 by Jef Poskanzer.
  3945. </DIV>
  3946. <DIV class="LEFT">
  3947. ppmquant112 January 1991
  3948. </DIV>
  3949. <DIV class="LEFT">NAME
  3950. ppmquant - quantize the colors in a portable pixmap down to a specified number
  3951. </DIV>
  3952. <DIV class="LEFT">SYNOPSIS
  3953. <B>ppmquant</B>
  3954. [<B>-floyd</B>|<B>-fs</B>]
  3955. <I>ncolors</I>
  3956. [<I>ppmfile</I>]
  3957. <B>ppmquant</B>
  3958. [<B>-floyd</B>|<B>-fs</B>]
  3959. <B>-map</B>
  3960. <I>mapfile</I>
  3961. [<I>ppmfile</I>]
  3962. </DIV>
  3963. <DIV class="LEFT">DESCRIPTION
  3964. Reads a portable pixmap as input.
  3965. Chooses
  3966. <I>ncolors</I>
  3967. colors to best represent the image, maps the existing colors
  3968. to the new ones, and writes a portable pixmap as output.
  3969. </DIV>
  3970. <DIV class="LEFT">The quantization method is Heckbert's ``median cut''.
  3971. </DIV>
  3972. <DIV class="LEFT">Alternately, you can skip the color-choosing step by
  3973. specifying your own set of colors with the
  3974. <B>-map</B>
  3975. flag.  The
  3976. <I>mapfile</I>
  3977. is just a
  3978. <I>ppm</I>
  3979. file; it can be any shape, all that matters is the colors in it.
  3980. For instance, to quantize down to the 8-color IBM TTL color set, you
  3981. might use:
  3982.     P3
  3983.     8 1
  3984.     255
  3985.       0   0   0
  3986.     255   0   0
  3987.       0 255   0
  3988.       0   0 255
  3989.     255 255   0
  3990.     255   0 255
  3991.       0 255 255
  3992.     255 255 255
  3993. </TT>
  3994. </DIV>
  3995. <DIV class="LEFT">If you want to quantize one pixmap to use the colors in another one,
  3996. just use the second one as the mapfile.
  3997. You don't have to reduce it down to only one pixel of each color,
  3998. just use it as is.
  3999. </DIV>
  4000. <DIV class="LEFT">The
  4001. <B>-floyd</B>/<B>-fs</B>
  4002. flag enables a Floyd-Steinberg error diffusion step.
  4003. Floyd-Steinberg gives vastly better results on images where the unmodified
  4004. quantization has banding or other artifacts, especially when going to a
  4005. small number of colors such as the above IBM set.
  4006. However, it does take substantially more CPU time, so the default is off.
  4007. </DIV>
  4008. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  4009. REFERENCES
  4010. ``Color Image Quantization for Frame Buffer Display'' by Paul Heckbert,
  4011. SIGGRAPH '82 Proceedings, page 297.
  4012. SEE ALSO
  4013. ppmquantall(1), pnmdepth(1), ppmdither(1), ppm(5)
  4014. AUTHOR
  4015. ©1989, 1991 by Jef Poskanzer.
  4016. </DIV>
  4017. <DIV class="LEFT">
  4018. ppmquantall127 July 1990
  4019. </DIV>
  4020. <DIV class="LEFT">NAME
  4021. ppmquantall - run ppmquant on a bunch of files all at once, so they share a common colormap
  4022. SYNOPSIS
  4023. <B>ppmquantall</B>
  4024. <I>ncolors ppmfile</I>
  4025. DESCRIPTION
  4026. Takes a bunch of portable pixmap as input.
  4027. Chooses
  4028. <I>ncolors</I>
  4029. colors to best represent all of the images, maps the
  4030. existing colors to the new ones, and
  4031. <B>overwrites the input files</B>
  4032. with the new quantized versions.
  4033. </DIV>
  4034. <DIV class="LEFT">Verbose explanation: Let's say you've got a dozen pixmaps that you want
  4035. to display on the screen all at the same time.  Your screen can only
  4036. display 256 different colors, but the pixmaps have a total of a thousand
  4037. or so different colors.  For a single pixmap you solve this problem with
  4038. <I>ppmquant</I>;
  4039. this script solves it for multiple pixmaps.  All it does is
  4040. concatenate them together into one big pixmap, run
  4041. <I>ppmquant</I>
  4042. on that, and then split it up into little pixmaps again.
  4043. </DIV>
  4044. <DIV class="LEFT">(Note that another way to solve this problem is to pre-select a set of
  4045. colors and then use
  4046. <I>ppmquant</I>'s
  4047. <B>-map</B>
  4048. option to separately quantize each pixmap to that set.)
  4049. SEE ALSO
  4050. ppmquant(1), ppm(5)
  4051. It's a csh script.
  4052. Csh scripts are not portable to System V.
  4053. Scripts in general are not portable to non-Unix environments.
  4054. AUTHOR
  4055. Copyright (C) 1991 by Jef Poskanzer.
  4056. </DIV>
  4057. <DIV class="LEFT">
  4058. PPMQVGA1local
  4059. </DIV>
  4060. <DIV class="LEFT">'NAME
  4061. ppmqvga - 8 plane quantization
  4062. 'SYNOPSIS
  4063. ppmqvga [ options ] [ input file ]
  4064. 'DESCRIPTION
  4065. <B>ppmqvga</B>
  4066. quantizes PPM files to 8 planes, with optional Floyd-Steinberg dithering.
  4067. Input is a PPM file from the file named, or standard input of no file is
  4068. provided.
  4069. <B>-d</B>
  4070. dither. Apply Floyd-Steinberg dithering to the data
  4071. </DIV>
  4072. <DIV class="LEFT"><B>-q</B>
  4073. quiet. Produces no progress reporting, and no terminal output unless
  4074. and error occurs.
  4075. </DIV>
  4076. <DIV class="LEFT"><B>-v</B>
  4077. verbose. Produces additional output describing the number of colors found,
  4078. and some information on the resulting mapping. May be repeated to generate
  4079. loads of internal table output, but generally only useful once.
  4080. EXAMPLES
  4081. ppmqvga -d my_image.ppm | ppmtogif >my_image.gif
  4082. </DIV>
  4083. <DIV class="LEFT">tgatoppm zombie.tga | ppmqvga | ppmtotif > zombie.tif
  4084. SEE ALSO
  4085. ppmquant
  4086. DIAGNOSTICS
  4087. Error messages if problems, various levels of optional progress reporting.
  4088. LIMITATIONS
  4089. none known.
  4090. AUTHOR
  4091. Original by Lyle Rains (lrains@netcom.com) as ppmq256 and ppmq256fs
  4092. combined, documented, and enhanced by Bill Davidsen (davidsen@crd.ge.com)
  4093. Copyright
  4094. Copyright 1991,1992 by Bill Davidsen, all rights reserved.
  4095. The program and documentation may be freely distributed by anyone in source
  4096. or binary format. Please clearly note any changes.
  4097. </DIV>
  4098. <DIV class="LEFT">
  4099. ppmrelief111 January 1991
  4100. </DIV>
  4101. <DIV class="LEFT">NAME
  4102. ppmrelief - run a Laplacian relief filter on a portable pixmap
  4103. SYNOPSIS
  4104. <B>ppmrelief</B>
  4105. [<I>ppmfile</I>]
  4106. DESCRIPTION
  4107. Reads a portable pixmap as input.
  4108. Does a Laplacian relief filter, and writes a portable pixmap as output.
  4109. </DIV>
  4110. <DIV class="LEFT">The Laplacian relief filter is described in ``Beyond Photography'' by Holzmann,
  4111. equation 3.19.
  4112. It's a sort of edge-detection.
  4113. SEE ALSO
  4114. pgmbentley(1), pgmoil(1), ppm(5)
  4115. AUTHOR
  4116. ©1990 by Wilson Bent (whb@hoh-2.att.com).
  4117. </DIV>
  4118. <DIV class="LEFT">
  4119. ppmshift116 November 1993
  4120. </DIV>
  4121. <DIV class="LEFT">NAME
  4122. ppmshift - shift lines of a portable pixmap left or right by a random amount
  4123. SYNOPSIS
  4124. ppmshift 
  4125. <I>shift</I>
  4126. [<I>ppmfile</I>]
  4127. DESCRIPTION
  4128. Reads a portable pixmap as input. Shifts every row of image data to the
  4129. left or right by a certain amount. The 'shift' parameter determines by how 
  4130. many pixels a row is to be shifted at most.
  4131. </DIV>
  4132. <DIV class="LEFT">Another one of those effects I intended to use for MPEG tests.
  4133. Unfortunately, this program will not help me here - it creates too random
  4134. patterns to be used for animations. Still, it might give interesting
  4135. results on still images.
  4136. EXAMPLE
  4137. Check this out: Save your favourite model's picture from something like
  4138. alt.binaries.pictures.supermodels (ok, or from any other picture source),
  4139. convert it to ppm, and process it e.g. like this, assuming the picture is 
  4140. 800x600 pixels:
  4141. 1<TT>  # take the upper half, and leave it like it is
  4142.   pnmcut 0 0 800 300 cs.ppm >upper.ppm
  4143. </TT></DIV>
  4144. <DIV class="LEFT"><TT># take the lower half, flip it upside down, dim it and distort it a little
  4145.   pnmcut 0 300 800 300 cs.ppm | pnmflip -tb | ppmdim 0.7 | 
  4146.      ppmshift 10 >lower.ppm
  4147. </TT></DIV>
  4148. <DIV class="LEFT"><TT># and concatenate the two pieces
  4149.   pnmcat -tb upper.ppm lower.ppm >newpic.ppm
  4150. The resulting picture looks like the image being reflected on a water 
  4151. surface with slight ripples.
  4152. SEE ALSO
  4153. ppm(5), pnmcut(1), pnmflip(1), ppmdim(1), pnmcat(1)
  4154. AUTHOR
  4155. ©1993 by Frank Neumann
  4156. </TT></DIV>
  4157. <DIV class="LEFT"><TT>
  4158. ppmspread116 November 1993
  4159. </TT></DIV>
  4160. <DIV class="LEFT"><TT>NAME
  4161. ppmspread - displace a portable pixmap's pixels by a random amount
  4162. SYNOPSIS
  4163. ppmspread
  4164. <I>amount</I>
  4165. </TT>[<TT><I>ppmfile</I></TT>]<TT>
  4166. DESCRIPTION
  4167. Reads a portable pixmap as input. Moves every pixel around a bit
  4168. relative to its original position. amount determines by how many
  4169. pixels a pixel is to be moved around at most.
  4170. </TT></DIV>
  4171. <DIV class="LEFT"><TT>Pictures processed with this filter will seem to be somewhat 
  4172. dissolved or unfocussed (although they appear more coarse than
  4173. images processed by something like
  4174. <I>pnmconvol</I>
  4175. SEE ALSO
  4176. ppm(5), pnmconvol(1)
  4177. AUTHOR
  4178. ©1993 by Frank Neumann
  4179. </TT></DIV>
  4180. <DIV class="LEFT"><TT>
  4181. ppmtoacad110 October 1991
  4182. </TT></DIV>
  4183. <DIV class="LEFT"><TT>NAME
  4184. ppmtoacad - convert portable pixmap to AutoCAD database or slide
  4185. SYNOPSIS
  4186. </TT></DIV>
  4187. <DIV class="LEFT"><TT><B>ppmtoacad</B>
  4188. 'in 15n
  4189. </TT>[<TT><B>-dxb</B></TT>][<TT><B>-poly</B></TT>][<TT><B>-background</B>
  4190. <I>colour</I></TT>][<TT><B>-white</B></TT>][<TT><B>-aspect</B>
  4191. <I>ratio</I></TT>][<TT><B>-8</B></TT>][<TT><I>ppmfile</I></TT>]<TT>
  4192. -7.5em
  4193. DESCRIPTION
  4194. Reads a portable pixmap as input.  Produces an AutoCADlide file or
  4195. binary database import (.dxb) file as output.
  4196. If no
  4197. <I>ppmfile</I>
  4198. is specified, input is read from standard input.
  4199. OPTIONS
  4200.   STYLE="" SRC="img39.png"
  4201.  ALT="\begin{TPlist}{{\bf -dxb}}
  4202. \item[{{\bf -dxb}}]
  4203. An AutoCAD binary database import...
  4204. ...-8}}]
  4205. Restricts the colours in the output file to the 8 RGB shades.
  4206. \end{TPlist}">
  4207. </TT></DIV>
  4208. <DIV class="LEFT"><TT>All flags can be abbreviated to their shortest unique prefix.
  4209. AutoCAD has a fixed palette of 256 colours, distributed along the hue,
  4210. lightness, and saturation axes.  Pixmaps which contain many
  4211. nearly-identical colours, or colours not closely approximated by
  4212. AutoCAD's palette, may be poorly rendered.
  4213. </TT></DIV>
  4214. <DIV class="LEFT"><TT><B>ppmtoacad</B>
  4215. works best if the system displaying its output supports the full 256
  4216. colour AutoCAD palette.  Monochrome, 8 colour, and 16 colour
  4217. configurations will produce less than optimal results.
  4218. </TT></DIV>
  4219. <DIV class="LEFT"><TT>When creating a .dxb file or a slide file with the
  4220. <B>-poly</B>
  4221. option,
  4222. <B>ppmtoacad</B>
  4223. finds both vertical and horizontal runs of identical pixels and
  4224. consolidates them into rectangular regions to reduce the size of the
  4225. output file.  This is effective for images with large areas of
  4226. constant colour but it's no substitute for true raster to vector
  4227. conversion.  In particular, thin diagonal lines are not optimised at
  4228. all by this process.
  4229. </TT></DIV>
  4230. <DIV class="LEFT"><TT>Output files can be huge.
  4231. SEE ALSO
  4232. AutoCAD Reference Manual:
  4233. <I>Slide File Format</I>
  4234. <I>Binary Drawing Interchange (DXB) Files</I></TT>,<TT>
  4235. <B>ppm</B></TT>(5)<TT>
  4236. AUTHOR
  4237.     John Walker
  4238.     Autodesk SA
  4239.     Avenue des Champs-Montants 14b
  4240.     CH-2074 MARIN
  4241.     Suisse/Schweiz/Svizzera/Svizra/Switzerland
  4242.   STYLE="" SRC="img23.png"
  4243.  ALT="\begin{TPlist}{Usenet:}
  4244. \item[{Usenet:}]
  4245. kelvin@Autodesk.com
  4246. \item[{Fax:}]
  4247. 038/33 88 15
  4248. \item[{Voice:}]
  4249. 038/33 76 33
  4250. \end{TPlist}">
  4251. </TT></DIV>
  4252. <DIV class="LEFT"><TT>Permission to use, copy, modify, and distribute this software and its
  4253. documentation for any purpose and without fee is hereby granted,
  4254. without any conditions or restrictions.  This software is provided ``as
  4255. is'' without express or implied warranty.
  4256. </TT></DIV>
  4257. <DIV class="LEFT"><TT>AutoCAD and Autodesk are registered trademarks of Autodesk, Inc.
  4258. </TT></DIV>
  4259. <DIV class="LEFT"><TT>
  4260. ppmtobmp126 Oct 1992
  4261. </TT></DIV>
  4262. <DIV class="LEFT"><TT>NAME
  4263. ppmtobmp – convert a portable pixmap into a BMP file
  4264. SYNOPSIS
  4265. <B>ppmtobmp</B>
  4266. </TT>[<TT><I>–windows</I></TT>][<TT><I>–os2</I></TT>][<TT><I>ppmfile</I></TT>]<TT>
  4267. DESCRIPTION
  4268. Reads a portable pixmap as input.
  4269. Produces a Microsoft Windows or OS/2 BMP file as output.
  4270. OPTIONS
  4271.   STYLE="" SRC="img40.png"
  4272.  ALT="\begin{TPlist}{{\bf --windows}}
  4273. \item[{{\bf --windows}}]
  4274. Tells the program to pr...
  4275. ...lls the program to produce an OS/2 BMP file.
  4276. (This is the default.)
  4277. \end{TPlist}">
  4278. </TT></DIV>
  4279. <DIV class="LEFT"><TT>All flags can be abbreviated to their shortest unique prefix.
  4280. SEE ALSO
  4281. bmptoppm(1),
  4282. ppm(5)
  4283. AUTHOR
  4284. ©1992 by David W. Sanderson.
  4285. </TT></DIV>
  4286. <DIV class="LEFT"><TT>
  4287. ppmtogif130 June 1993
  4288. </TT></DIV>
  4289. <DIV class="LEFT"><TT>NAME
  4290. ppmtogif - convert a portable pixmap into a GIF file
  4291. SYNOPSIS
  4292. <B>ppmtogif</B>
  4293. </TT>[<TT><B>-interlace</B></TT>][<TT><B>-sort</B></TT>][<TT><B>-map</B>
  4294. <I>mapfile ]</I>
  4295. </TT>[<TT><I>ppmfile</I></TT>]<TT>
  4296. DESCRIPTION
  4297. Reads a portable pixmap as input.
  4298. Produces a GIF file as output.
  4299. OPTIONS
  4300.   STYLE="" SRC="img41.png"
  4301.  ALT="\begin{TPlist}{{\bf -interlace}}
  4302. \item[{{\bf -interlace}}]
  4303. Tells the program to ...
  4304. ...ng filter in advance:
  4305. {\it ppmquant}
  4306. -floyd -map
  4307. {\it mapfile}
  4308. \end{TPlist}">
  4309. </TT></DIV>
  4310. <DIV class="LEFT"><TT>All flags can be abbreviated to their shortest unique prefix.
  4311. SEE ALSO
  4312. giftoppm(1), ppmquant(1), ppm(5)
  4313. AUTHOR
  4314. Based on GIFENCOD by David Rowley (mgardi@watdcsu.waterloo.edu).
  4315. Lempel-Ziv compression based on ``compress''.
  4316. </TT></DIV>
  4317. <DIV class="LEFT"><TT>©1989 by Jef Poskanzer.
  4318. </TT></DIV>
  4319. <DIV class="LEFT"><TT>
  4320. ppmtoicr130 July 1990
  4321. </TT></DIV>
  4322. <DIV class="LEFT"><TT>NAME
  4323. ppmtoicr - convert a portable pixmap into NCSA ICR format 
  4324. SYNOPSIS
  4325. <B>ppmtoicr</B>
  4326. </TT>[<TT><B>-windowname</B>
  4327. <I>name</I></TT>][<TT><B>-expand</B>
  4328. <I>expand</I></TT>][<TT><B>-display</B>
  4329. <I>display</I></TT>][<TT><B>-rle</B></TT>][<TT><I>ppmfile</I></TT>]<TT>
  4330. DESCRIPTION
  4331. Reads a portable pixmap file as input.
  4332. Produces an NCSA Telnet Interactive Color Raster graphic file as output.
  4333. <I>ppmfile</I>
  4334. is not supplied, 
  4335. <I>ppmtoicr</I>
  4336. will read from standard input.
  4337. </TT></DIV>
  4338. <DIV class="LEFT"><TT>Interactive Color Raster (ICR) is a protocol for displaying raster
  4339. graphics on workstation screens. The protocol is implemented in NCSA
  4340. Telnet for the Macintosh version 2.3.
  4341. The ICR protocol shares
  4342. characteristics of the Tektronix graphics terminal emulation protocol.
  4343. For example, escape sequences are used to control the display.
  4344. </TT></DIV>
  4345. <DIV class="LEFT"><TT><I>ppmtoicr</I>
  4346. will output the appropriate sequences to create a window of the
  4347. dimensions of the input pixmap,
  4348. create a colormap of up to 256
  4349. colors on the display, then load the picture data into the window.
  4350. </TT></DIV>
  4351. <DIV class="LEFT"><TT>Note that there is no icrtoppm tool - this transformation is one way.
  4352. OPTIONS
  4353.   STYLE="" SRC="img42.png"
  4354.  ALT="\begin{TPlist}{{\bf -windowname}{\it name}
  4355. \item[{{\bf -windowname}{\it name}
  4356. ...rly always
  4357. result in a quicker display, but may skew the colormap.)
  4358. \end{TPlist}">
  4359. </TT></DIV>
  4360. <DIV class="LEFT"><TT>EXAMPLES
  4361. To display a
  4362. <I>ppm</I>
  4363. file using the protocol:
  4364.     ppmtoicr ppmfile
  4365. This will create a window named 
  4366. <I>ppmfile</I>
  4367. on the display with the correct dimensions for
  4368. <I>ppmfile,</I>
  4369. create and download a colormap of up
  4370. to 256 colors, and download the picture into the window. The same effect
  4371. may be achieved by the following sequence:
  4372.     ppmtoicr ppmfile > filename
  4373.     cat filename
  4374. To display a GIF 
  4375. file using the protocol in a window titled after the input file, zoom
  4376. the displayed image by a factor of 2, and
  4377. run-length encode the data:
  4378.     giftoppm giffile | ppmtoicr -w giffile -r -e 2
  4379. </TT></DIV>
  4380. <DIV class="LEFT"><TT>The protocol uses frequent 
  4381. <I>fflush</I>
  4382. calls to speed up display. If the
  4383. output is saved to a file for later display via
  4384. <I>cat,</I>
  4385. drawing will be
  4386. much slower. In either case, increasing the Blocksize limit on the
  4387. display will speed up transmission substantially.
  4388. SEE ALSO
  4389. <B>ppm(5)</B>
  4390. </TT></DIV>
  4391. <DIV class="LEFT"><TT>
  4392. <I>NCSA Telnet for the Macintosh</I></TT>,<TT>
  4393. University of Illinois at Urbana-Champaign (1989)
  4394. AUTHOR
  4395. ©1990 by Kanthan Pillay (svpillay@Princeton.EDU),
  4396. Princeton University Computing and Information Technology.
  4397. </TT></DIV>
  4398. <DIV class="LEFT"><TT>
  4399. ppmtoilbm129 August 1993
  4400. </TT></DIV>
  4401. <DIV class="LEFT"><TT>NAME
  4402. ppmtoilbm - convert a portable pixmap into an ILBM file
  4403. SYNOPSIS
  4404. <B>ppmtoilbm</B>
  4405. </TT>[<TT><B>-maxplanes</B></TT>|<TT><B>-mp</B>
  4406. <I>N</I></TT>][<TT><B>-fixplanes</B></TT>|<TT><B>-fp</B>
  4407. <I>N</I></TT>][<TT><B>-ham6</B></TT>|<TT><B>-ham8</B></TT>][<TT><B>-dcbits</B></TT>|<TT><B>-dcplanes</B></TT>r<TT><B>g</B></TT>b<TT><B>]</B>
  4408. </TT>[<TT><B>-normal</B></TT>|<TT><B>-hamif</B></TT>|<TT><B>-hamforce</B></TT>|<TT><B>-24if</B></TT>|<TT><B>-24force</B></TT>|-dcif<TT><B>|</B></TT>-dcforce<TT><B>|</B></TT>-cmaponly<TT><B>]</B>
  4409. </TT>[<TT><B>-ecs</B></TT>|<TT><B>-aga</B></TT>][<TT><B>-map</B></TT>ppmfile<TT><B>]</B>
  4410. </TT>[<TT><B>ppmfile</B></TT>]<TT>
  4411. DESCRIPTION
  4412. Reads a portable pixmap as input.
  4413. Produces an ILBM file as output.
  4414. Supported ILBM types are:
  4415.   STYLE="" SRC="img43.png"
  4416.  ALT="\begin{TPlist}{Normal ILBMs with 1-16 planes.}
  4417. \item[{Normal ILBMs with 1-16 pla...
  4418. ...gnored but displayed in verbose mode):}]
  4419. NAME, AUTH, (c), ANNO, DPI
  4420. \end{TPlist}">
  4421. </TT></DIV>
  4422. <DIV class="LEFT"><TT>OPTIONS
  4423. Options marked with (*) can be prefixed with a ``no'',
  4424. <I>e.g.</I>, ``-nohamif''. All options can be abbreviated to
  4425. their shortest unique prefix.
  4426.   STYLE="" SRC="img44.png"
  4427.  ALT="\begin{TPlist}{{\bf -maxplanes $\vert$\ -mp n}}
  4428. \item[{{\bf -maxplanes $\vert$\ ...
  4429. ...lormap file: only BMHD and CMAP chunks, no BODY
  4430. chunk, nPlanes = 0.
  4431. \end{TPlist}">
  4432. </TT></DIV>
  4433. <DIV class="LEFT"><TT>BUGS
  4434. Needs a real colormap selection algorithm for HAM pictures,
  4435. instead of using a grayscale colormap.
  4436. REFERENCES
  4437. Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
  4438. Addison Wesley, ISBN 0–201–56775–X
  4439. SEE ALSO
  4440. ppm(5), ilbmtoppm(1)
  4441. AUTHORS
  4442. ©1989 by Jef Poskanzer.
  4443. Modified August 1993 by Ingo Wilken
  4444. (Ingo.Wilken@informatik.uni-oldenburg.de).
  4445. </TT></DIV>
  4446. <DIV class="LEFT"><TT>
  4447. ppmtomitsu129 Jan 1992
  4448. </TT></DIV>
  4449. <DIV class="LEFT"><TT>NAME
  4450. ppmtomitsu - convert a portable pixmap to a Mitsubishi S340-10 file
  4451. SYNOPSIS
  4452. <B>ppmtomitsu</B>
  4453. </TT>[-sharpness<TT>
  4454. <I>val</I></TT>][<TT><B>-enlarge</B>
  4455. <I>val</I></TT>][<TT><B>-media</B>
  4456. <I>string</I></TT>][<TT><B>-copy</B>
  4457. <I>val</I></TT>][<TT><B>-dpi300</B></TT>][<TT><B>-tiny</B></TT>][<TT><I>ppmfile</I></TT>]<TT>
  4458. DESCRIPTION
  4459. Reads a portable pixmap as input and converts it into a format suitable
  4460. to be printed by a Mitsubishi S340-10 printer, or any other Mitsubishi
  4461. color sublimation printer.
  4462. </TT></DIV>
  4463. <DIV class="LEFT"><TT>The Mitsubishi S340-10 Color Sublimation printer supports 24bit color.
  4464. Images of the available sizes take so long to transfer that there is a
  4465. fast method, employing a lookuptable, that ppmtomitsu will use if there
  4466. is a maximum of 256 colors in the pixmap.
  4467. ppmtomitsu will try to position your image to the center of the paper,
  4468. and will rotate your image for you if xsize is larger than ysize.
  4469. If your image is larger than the media allows, ppmtomitsu will quit
  4470. with an error message. (We decided that the media were too expensive
  4471. to have careless users produce misprints.) 
  4472. Once data transmission has started, the job can't be stopped in a
  4473. sane way without resetting the printer.
  4474. The printer understands putting together images in the printers memory;
  4475. ppmtomitsu doesn't utilize this as pnmcat etc provide the same functionality
  4476. and let you view the result on-screen, too.
  4477. The S340-10 is the lowest common denominator printer; for higher
  4478. resolution printers there's the dpi300 option. The other printers also
  4479. support higher values for enlarge eg, but I don't think that's essential
  4480. enough to warrant a change in the program.
  4481.   STYLE="" SRC="img45.png"
  4482.  ALT="\begin{TPlist}{{\bf -sharpness}{\it\ 1-4}
  4483. \item[{{\bf -sharpness}{\it\ 1-4}
  4484. }]...
  4485. ...o use this if your machine starts
  4486. paging a lot without this option.
  4487. \end{TPlist}">
  4488. </TT></DIV>
  4489. <DIV class="LEFT"><TT>REFERENCES
  4490. Mitsubishi Sublimation Full Color Printer S340-10 Specifications of
  4491. Parallel Interface LSP-F0232F
  4492. SEE ALSO
  4493. ppmquant(1), pnmscale(1), ppm(5)
  4494. We didn't find any - yet. (Besides, they're called features anyway :-)
  4495. If you should find one, my email-adress is below.
  4496. AUTHOR
  4497. ©1992, 93 by S.Petra Zeidler, MPIfR Bonn, Germany.
  4498. (spz@specklec.mpifr-bonn.mpg.de)
  4499. </TT></DIV>
  4500. <DIV class="LEFT"><TT>
  4501. ppmtomap111 August 1993
  4502. </TT></DIV>
  4503. <DIV class="LEFT"><TT>NAME
  4504. ppmtomap - extract all colors from a portable pixmap
  4505. SYNOPSIS
  4506. <B>ppmtomap</B>
  4507. </TT>[<TT><B>-sort</B></TT>][<TT><B>-square</B></TT>][<TT><I>ppmfile</I></TT>]<TT>
  4508. DESCRIPTION
  4509. Reads a portable pixmap as input.
  4510. Produces a portable pixmap as output, representing a color map of the
  4511. input file. All N different colors found are put in an Nx1 portable
  4512. pixmap.
  4513. This color map file can be used as a mapfile for
  4514. <I>ppmquant</I>
  4515. <I>ppmtogif.</I>
  4516. OPTIONS
  4517.   STYLE="" SRC="img46.png"
  4518.  ALT="\begin{TPlist}{{\bf -sort}}
  4519. \item[{{\bf -sort}}]
  4520. Produces a portable pixmap with...
  4521. ...) square output file, instead of putting all
  4522. colors on the top row.
  4523. \end{TPlist}">
  4524. </TT></DIV>
  4525. <DIV class="LEFT"><TT>All flags can be abbreviated to their shortest unique prefix.
  4526. WARNING
  4527. If you want to use the output file as a mapfile for
  4528. <I>ppmtogif,</I>
  4529. you first have to do a
  4530. <I>ppmquant 256,</I>
  4531. since
  4532. <I>ppmtomap</I>
  4533. is not limited to 256 colors (but to 65536).
  4534. SEE ALSO
  4535. ppmtogif(1), ppmquant(1), ppm(5)
  4536. AUTHOR
  4537. Marcel Wijkstra (wijkstra@fwi.uva.nl).
  4538. </TT></DIV>
  4539. <DIV class="LEFT"><TT>©1989 by Jef Poskanzer.
  4540. </TT></DIV>
  4541. <DIV class="LEFT"><TT>
  4542. ppmtopcx109 April 1990
  4543. </TT></DIV>
  4544. <DIV class="LEFT"><TT>NAME
  4545. ppmtopcx - convert a portable pixmap into a PCX file
  4546. SYNOPSIS
  4547. <B>ppmtopcx</B>
  4548. </TT>[<TT><I>ppmfile</I></TT>]<TT>
  4549. DESCRIPTION
  4550. Reads a portable pixmap as input.
  4551. Produces a PCX file as output.
  4552. SEE ALSO
  4553. pcxtoppm(1), ppm(5)
  4554. AUTHOR
  4555. ©1990 by Michael Davidson.
  4556. </TT></DIV>
  4557. <DIV class="LEFT"><TT>
  4558. ppmtopgm123 December 1988
  4559. </TT></DIV>
  4560. <DIV class="LEFT"><TT>NAME
  4561. ppmtopgm - convert a portable pixmap into a portable graymap
  4562. SYNOPSIS
  4563. <B>ppmtopgm</B>
  4564. </TT>[<TT><I>ppmfile</I></TT>]<TT>
  4565. DESCRIPTION
  4566. Reads a portable pixmap as input.
  4567. Produces a portable graymap as output.
  4568. The quantization formula used is .299 r + .587 g + .114 b.
  4569. </TT></DIV>
  4570. <DIV class="LEFT"><TT>Note that although there is a
  4571. <I>pgmtoppm</I>
  4572. program, it is not necessary
  4573. for simple conversions from
  4574. <I>pgm</I>
  4575. <I>ppm</I></TT>,<TT>
  4576. because any ppm program can
  4577. <I>pgm</I>
  4578. <I>pbm</I>
  4579. ) files automagically.
  4580. <I>pgmtoppm</I>
  4581. is for colorizing a
  4582. <I>pgm</I>
  4583. file.  Also, see
  4584. <I>ppmtorgb3</I>
  4585. for a different way of converting color to gray.
  4586. QUOTE
  4587. Cold-hearted orb that rules the night
  4588. Removes the colors from our sight
  4589. Red is gray, and yellow white
  4590. But we decide which is right
  4591. And which is a quantization error.
  4592. SEE ALSO
  4593. pgmtoppm(1), ppmtorgb3(1), rgb3toppm(1), ppm(5), pgm(5)
  4594. AUTHOR
  4595. ©1989 by Jef Poskanzer.
  4596. </TT></DIV>
  4597. <DIV class="LEFT"><TT>
  4598. ppmtopi1119 July 1990
  4599. </TT></DIV>
  4600. <DIV class="LEFT"><TT>NAME
  4601. ppmtopi1 - convert a portable pixmap into an Atari Degas .pi1 file
  4602. SYNOPSIS
  4603. <B>ppmtopi1</B>
  4604. </TT>[<TT><I>ppmfile</I></TT>]<TT>
  4605. DESCRIPTION
  4606. Reads a portable pixmap as input.
  4607. Produces an Atari Degas .pi1 file as output.
  4608. SEE ALSO
  4609. pi1toppm(1), ppm(5), pbmtopi3(1), pi3topbm(1)
  4610. AUTHOR
  4611. ©1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
  4612. </TT></DIV>
  4613. <DIV class="LEFT"><TT>
  4614. ppmtopict115 April 1990
  4615. </TT></DIV>
  4616. <DIV class="LEFT"><TT>NAME
  4617. ppmtopict - convert a portable pixmap into a Macintosh PICT file
  4618. SYNOPSIS
  4619. <B>ppmtopict</B>
  4620. </TT>[<TT><I>ppmfile</I></TT>]<TT>
  4621. DESCRIPTION
  4622. Reads a portable pixmap as input.
  4623. Produces a Macintosh PICT file as output.
  4624. </TT></DIV>
  4625. <DIV class="LEFT"><TT>The generated file is only the data fork of a picture.
  4626. You will need a program such as
  4627. <I>mcvert</I>
  4628. to generate a Macbinary or a BinHex file that contains the necessary
  4629. information to identify the file as a PICT file to MacOS.
  4630. </TT></DIV>
  4631. <DIV class="LEFT"><TT>Even though PICT supports 2 and 4 bits per pixel,
  4632. <I>ppmtopict</I>
  4633. always generates an 8 bits per pixel file.
  4634. The picture size field is only correct if the output is to a file
  4635. since writing into this field requires seeking backwards on a file.
  4636. However the PICT documentation seems to suggest that this field is
  4637. not critical anyway since it is only the lower 16 bits of the picture size.
  4638. SEE ALSO
  4639. picttoppm(1), ppm(5), mcvert(1)
  4640. AUTHOR
  4641. ©1990 by Ken Yap (ken@cs.rocester.edu).
  4642. </TT></DIV>
  4643. <DIV class="LEFT"><TT>
  4644. ppmtopj113 July 1991
  4645. </TT></DIV>
  4646. <DIV class="LEFT"><TT>NAME
  4647. ppmtopj - convert a portable pixmap to an HP PaintJet file
  4648. SYNOPSIS
  4649. <B>ppmtopj</B>
  4650. </TT>[-gamma<TT>
  4651. <I>val</I></TT>][<TT><B>-xpos</B>
  4652. <I>val</I></TT>][<TT><B>-ypos</B>
  4653. <I>val</I></TT>][<TT><B>-back</B>
  4654. <B>dark</B></TT>|<TT><B>lite</B></TT>][<TT><B>-rle</B></TT>][<TT><B>-center</B></TT>][<TT><B>-render</B>
  4655. <B>none|snap|bw|dither|diffuse|monodither|monodiffuse|clusterdither|monoclusterdither</B></TT>][<TT><I>ppmfile</I></TT>]<TT>
  4656. DESCRIPTION
  4657. Reads a portable pixmap as input and converts it into a format suitable
  4658. to be printed by an HP PaintJet printer.
  4659. </TT></DIV>
  4660. <DIV class="LEFT"><TT>For best results, the input file should be in 8-color RGB form;
  4661. <I>i.e.</I>, it should have only
  4662. the 8 binary combinations of full-on and full-off primaries.
  4663. You could get this by sending the input file through
  4664. <I>ppmquant -map</I>
  4665. with a map file such as:
  4666.     P3
  4667.     8 1
  4668.     255
  4669.     0 0 0      255 0 0    0 255 0    0 0 255
  4670.     255 255 0  255 0 255  0 255 255  255 255 255
  4671. Or else you could use use
  4672. <I>ppmdither -red 2 -green 2 -blue 2.</I>
  4673. OPTIONS
  4674.   STYLE="" SRC="img47.png"
  4675.  ALT="\begin{TPlist}{{\bf -rle}}
  4676. \item[{{\bf -rle}}]
  4677. Run length encode the image.
  4678. (Thi...
  4679. ...em[{{\bf -ypos}{\it\ pos}
  4680. Move by pos pixels in the y direction.
  4681. \end{TPlist}">
  4682. </TT></DIV>
  4683. <DIV class="LEFT"><TT>REFERENCES
  4684. HP PaintJet XL Color Graphics Printer User's Guide
  4685. SEE ALSO
  4686. pnmdepth(1), ppmquant(1), ppmdither(1), ppm(5)
  4687. Most of the options have not been tested because of the price of the paper.
  4688. AUTHOR
  4689. ©1991 by Christos Zoulas.
  4690. </TT></DIV>
  4691. <DIV class="LEFT"><TT>
  4692. ppmtopjxl114 March 1991
  4693. </TT></DIV>
  4694. <DIV class="LEFT"><TT>NAME
  4695. ppmtopjxl - convert a portable pixmap into an HP PaintJet XL PCL file
  4696. SYNOPSIS
  4697. ppmtopjxl [-nopack] [-gamma
  4698. <I><n></I>
  4699. ] [-presentation] [-dark] [-diffuse] [-cluster] [-dither] [-xshift
  4700. <I><s></I>
  4701. ] [-yshift
  4702. <I><s></I>
  4703. ] [-xshift
  4704. <I><s></I>
  4705. ] [-yshift
  4706. <I><s></I>
  4707. ] [-xsize|-width|-xscale
  4708. <I><s></I>
  4709. ] [-ysize|-height|-yscale
  4710. <I><s></I>
  4711. ] [ppmfile]
  4712. </TT></DIV>
  4713. <DIV class="LEFT"><TT>DESCRIPTION
  4714. Reads a portable pixmap as input.
  4715. Produces a PCL file suitable for printing on an HP PaintJet XL printer as
  4716. output.
  4717. </TT></DIV>
  4718. <DIV class="LEFT"><TT>The generated file is not suitable for printing on a normal PrintJet printer.
  4719. <B>–nopack</B>
  4720. option generates a file which does not use the normal TIFF 4.0 compression
  4721. method. This file might be printable on a normal PaintJet printer (not an XL).
  4722. </TT></DIV>
  4723. <DIV class="LEFT"><TT>The
  4724. <B>–gamma</B>
  4725. option sets the gamma correction for the image. The useful range for the
  4726. PaintJet XL is approximately 0.6 to 1.5.
  4727. </TT></DIV>
  4728. <DIV class="LEFT"><TT>The rendering algorithm used for images can be altered with the
  4729. <B>-dither,</B>
  4730. <B>-cluster,</B>
  4731. <B>-diffuse</B>
  4732. options. These options select ordered dithering, clustered ordered dithering,
  4733. or error diffusion respectively.
  4734. <B>–dark</B>
  4735. option can be used to enhance images with a dark background when they are
  4736. reduced in size.
  4737. <B>–presentation</B>
  4738. option turns on presentation mode, in which two passes are made over the paper
  4739. to increase ink density. This should be used only for images where quality is
  4740. critical.
  4741. </TT></DIV>
  4742. <DIV class="LEFT"><TT>The image can be resized by setting the 
  4743. <B>–xsize</B>
  4744. <B>–ysize</B>
  4745. options. The parameter to either of these options is interpreted as the
  4746. number of dots to set the width or height to, but an optional dimension of
  4747. `<B>pt</B></TT>' (points), `<B>dp</B>' (decipoints), `<B>in</B>' (inches), or
  4748. `<B>cm</B>' (centimetres) may be appended.
  4749. If only one dimension is specified, the other will be scaled appropriately.
  4750. </DIV>
  4751. <DIV class="LEFT">The options
  4752. <B>–width</B>
  4753. <B>–height</B>
  4754. are synonyms of
  4755. <B>–xsize</B>
  4756. <B>–ysize.</B>
  4757. </DIV>
  4758. <DIV class="LEFT">The
  4759. <B>–xscale</B>
  4760. <B>–yscale</B>
  4761. options can alternatively be used to scale the image by a simple factor.
  4762. </DIV>
  4763. <DIV class="LEFT">The image can be shifted on the page by using the
  4764. <B>–xshift</B>
  4765. <B>–yshift</B>
  4766. options. These move the image the specified dimensions right and down.
  4767. </DIV>
  4768. <DIV class="LEFT">SEE ALSO
  4769. ppm(5)
  4770. AUTHOR
  4771. Angus Duggan
  4772. </DIV>
  4773. <DIV class="LEFT">
  4774. ppmtopuzz122 August 1990
  4775. </DIV>
  4776. <DIV class="LEFT">NAME
  4777. ppmtopuzz - convert a portable pixmap into an X11 ``puzzle'' file
  4778. SYNOPSIS
  4779. <B>ppmtopuzz</B>
  4780. [<I>ppmfile</I>]
  4781. DESCRIPTION
  4782. Reads a portable pixmap as input.
  4783. Produces an X11 ``puzzle'' file as output.
  4784. A ``puzzle'' file is for use with the
  4785. <I>puzzle</I>
  4786. program included with the X11 distribution -
  4787. <I>puzzle</I>'s
  4788. <B>-picture</B>
  4789. flag lets you specify an image file.
  4790. SEE ALSO
  4791. ppm(5), puzzle(1)
  4792. AUTHOR
  4793. ©1991 by Jef Poskanzer.
  4794. </DIV>
  4795. <DIV class="LEFT">
  4796. ppmtorgb3110 January 1991
  4797. </DIV>
  4798. <DIV class="LEFT">NAME
  4799. ppmtorgb3 - separate a portable pixmap into three portable graymaps
  4800. SYNOPSIS
  4801. <B>ppmtorgb3</B>
  4802. [<I>ppmfile</I>]
  4803. DESCRIPTION
  4804. Reads a portable pixmap as input.
  4805. Writes three portable graymaps as output, one each for red, green, and blue.
  4806. </DIV>
  4807. <DIV class="LEFT">The output filenames are constructed by taking the input filename,
  4808. stripping off any extension, and appending ``.red'', ``.grn'', and
  4809. ``.blu''.
  4810. For example, separating lenna.ppm would result in lenna.red, lenna.grn,
  4811. and lenna.blu.
  4812. If the input comes from stdin, the names are noname.red, noname.grn,
  4813. and noname.blu.
  4814. SEE ALSO
  4815. rgb3toppm(1), ppmtopgm(1), pgmtoppm(1), ppm(5), pgm(5)
  4816. AUTHOR
  4817. ©1991 by Jef Poskanzer.
  4818. </DIV>
  4819. <DIV class="LEFT">
  4820. ppmtosixel126 April 1991
  4821. </DIV>
  4822. <DIV class="LEFT">NAME
  4823. ppmtosixel - convert a portable pixmap into DEC sixel format
  4824. SYNOPSIS
  4825. <B>ppmtosixel</B>
  4826. [<B>-raw</B>]
  4827. [<B>-margin</B>]
  4828. [<I>ppmfile</I>]
  4829. DESCRIPTION
  4830. Reads a portable pixmap as input.
  4831. Produces sixel commands (SIX) as output.
  4832. The output is formatted for color printing, <I>e.g.</I>, for a DEC LJ250 color
  4833. inkjet printer. 
  4834. </DIV>
  4835. <DIV class="LEFT">If RGB values from the PPM file do not have maxval=100,
  4836. the RGB values are rescaled.
  4837. A printer control header and a color assignment table begin the SIX file.
  4838. Image data is written in a compressed format by default.
  4839. A printer control footer ends the image file.
  4840. OPTIONS
  4841.   STYLE="" SRC="img48.png"
  4842.  ALT="\begin{TPlist}{{\bf -raw}}
  4843. \item[{{\bf -raw}}]
  4844. If specified, each pixel will be ...
  4845. ...margin}
  4846. is specified, a 1.5 inch left margin will offset the image.
  4847. \end{TPlist}">
  4848. </DIV>
  4849. <DIV class="LEFT">PRINTING
  4850. Generally, sixel files must reach the printer unfiltered.
  4851. Use the lpr -x option or cat filename > /dev/tty0?.
  4852. Upon rescaling, truncation of the least significant bits of RGB values
  4853. may result in poor color conversion.
  4854. If the original PPM maxval was greater than 100, rescaling also
  4855. reduces the image depth.
  4856. While the actual RGB values from the ppm file are more or less
  4857. retained, the color palette of the LJ250 may not match the colors
  4858. on your screen.
  4859. This seems to be a printer limitation.
  4860. SEE ALSO
  4861. ppm(5)
  4862. AUTHOR
  4863. ©1991 by Rick Vinci.
  4864. </DIV>
  4865. <DIV class="LEFT">
  4866. ppmtotga128 October 1991
  4867. </DIV>
  4868. <DIV class="LEFT">NAME
  4869. ppmtotga - convert portable pixmap into a TrueVision Targa file
  4870. SYNOPSIS
  4871. <B>ppmtotga</B>
  4872. [<B>-mono|-cmap|-rgb</B>]
  4873. [<B>-norle</B>]
  4874. [<I>ppmfile</I>]
  4875. DESCRIPTION
  4876. Reads a portable pixmap as input.
  4877. Produces a TrueVision Targa file as output.
  4878. OPTIONS
  4879.   STYLE="" SRC="img49.png"
  4880.  ALT="\begin{TPlist}{{\bf -mono}}
  4881. \item[{{\bf -mono}}]
  4882. Forces Targa file to be of type...
  4883. ... you have a Targa reader which
  4884. can't read run-length encoded files.
  4885. \end{TPlist}">
  4886. </DIV>
  4887. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.  If no
  4888. file type is specified the most highly constained compatible type is
  4889. used, where monochrome is more constained than colormapped which is in
  4890. turn more constained than unmapped.
  4891. Does not support all possible Targa file types.
  4892. Should really be in PNM, not PPM.
  4893. SEE ALSO
  4894. tgatoppm(1), ppm(5)
  4895. AUTHOR
  4896. ©1989, 1991 by Mark Shand and Jef Poskanzer.
  4897. </DIV>
  4898. <DIV class="LEFT">
  4899. ppmtouil131 August 1990
  4900. </DIV>
  4901. <DIV class="LEFT">NAME
  4902. ppmtouil - convert a portable pixmap into a Motif UIL icon file
  4903. SYNOPSIS
  4904. <B>ppmtouil</B>
  4905. [<B>-name</B>
  4906. <I>uilname</I>]
  4907. [<I>ppmfile</I>]
  4908. DESCRIPTION
  4909. Reads a portable pixmap as input.
  4910. Produces a Motif UIL icon file as output.
  4911. </DIV>
  4912. <DIV class="LEFT">If the program was compiled with an rgb database specified, and
  4913. a RGB value from the ppm input matches a RGB value from the database,
  4914. then the corresponding color name mnemonic is printed in the UIL's colormap.
  4915. If no rgb database was compiled in, or if the RGB values don't match,
  4916. then the color
  4917. will be printed with the #RGB, #RRGGBB, #RRRGGGBBB, or #RRRRGGGGBBBB
  4918. hexadecimal format.
  4919. OPTIONS
  4920.   STYLE="" SRC="img50.png"
  4921.  ALT="\begin{TPlist}{{\bf -name}}
  4922. \item[{{\bf -name}}]
  4923. Allows you to specify the prefi...
  4924. ...ed input), the prefix string will default to
  4925. the string \lq\lq noname''.
  4926. \end{TPlist}">
  4927. </DIV>
  4928. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  4929. SEE ALSO
  4930. ppm(5)
  4931. AUTHOR
  4932. Converted by Jef Poskanzer from ppmtoxpm.c, which is
  4933. ©1990 by Mark W. Snitily.
  4934. </DIV>
  4935. <DIV class="LEFT">
  4936. ppmtoxpm1Tue Apr 9 1991
  4937. </DIV>
  4938. <DIV class="LEFT">NAME
  4939. ppmtoxpm - convert a portable pixmap into an X11 pixmap
  4940. SYNOPSIS
  4941. ppmtoxpm [-name <xpmname>] [-rgb <rgb-textfile>] [<ppmfile>]
  4942. DESCRIPTION
  4943. Reads a portable pixmap as input.
  4944. Produces X11 pixmap  (version 3) as output which
  4945. can be loaded directly by the XPM library.
  4946. </DIV>
  4947. <DIV class="LEFT">The <B>-nameoption</B> allows one to specify the prefix string which is printed
  4948. in the resulting XPM output.  If not specified, will default to the
  4949. filename (without extension) of the <ppmfile> argument.
  4950. If <B>-nameis</B> not specified and <ppmfile>
  4951. is not specified (<I>i.e.</I>, piped input), the prefix string will default to
  4952. the string ``noname''.
  4953. </DIV>
  4954. <DIV class="LEFT">The <B>-rgboption</B> allows one to specify an X11 rgb text file for the
  4955. lookup of color name mnemonics.  This rgb text file is typically the
  4956. /usr/lib/X11/rgb.txt of the MIT X11 distribution, but any file using the
  4957. same format may be used.  When specified and
  4958. a RGB value from the ppm input matches a RGB value from the <rgb-textfile>,
  4959. then the corresponding color name mnemonic is printed in the XPM's colormap.
  4960. If <B>-rgbis</B> not specified, or if the RGB values don't match, then the color
  4961. will be printed with the #RGB, #RRGGBB, #RRRGGGBBB, or #RRRRGGGGBBBB
  4962. hexadecimal format.
  4963. </DIV>
  4964. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  4965. </DIV>
  4966. <DIV class="LEFT">For example, to convert the file ``dot'' (found in /usr/include/X11/bitmaps),
  4967. from xbm to xpm one could specify
  4968.   STYLE="" SRC="img51.png"
  4969.  ALT="\begin{IPlist}
  4970. \IPitem{{}}
  4971. xbmtopbm dot $\vert$\ ppmtoxpm -name dot
  4972. \end{IPlist}">
  4973. </DIV>
  4974. <DIV class="LEFT">or, with a rgb text file (in the local directory)
  4975.   STYLE="" SRC="img52.png"
  4976.  ALT="\begin{IPlist}
  4977. \IPitem{{}}
  4978. xbmtopbm dot $\vert$\ ppmtoxpm -name dot -rgb rgb.txt
  4979. \end{IPlist}">
  4980. </DIV>
  4981. <DIV class="LEFT">BUGS
  4982. An option to match the closest (rather than exact) color name mnemonic
  4983. from the rgb text would be a desirable enhancement.
  4984. </DIV>
  4985. <DIV class="LEFT">Truncation of the least significant bits of a RGB value may result in
  4986. nonexact matches when performing color name mnemonic lookups.
  4987. SEE ALSO
  4988. ppm(5)
  4989. XPM Manual by Arnaud Le Hors (lehors@mirsa.inria.fr).
  4990. AUTHOR
  4991. ©1990 by Mark W. Snitily.
  4992. </DIV>
  4993. <DIV class="LEFT">Permission to use, copy, modify, and distribute this software and its
  4994. documentation for any purpose and without fee is hereby granted, provided
  4995. that the above copyright notice appear in all copies and that both that
  4996. copyright notice and this permission notice appear in supporting
  4997. documentation.  This software is provided "as is" without express or
  4998. implied warranty.
  4999. </DIV>
  5000. <DIV class="LEFT">This tool was developed for Schlumberger Technologies, ATE Division, and
  5001. with their permission is being made available to the public with the above
  5002. copyright notice and permission notice.
  5003. </DIV>
  5004. <DIV class="LEFT">Upgraded to XPM2 by
  5005.    Paul Breslaw, Mecasoft SA, Zurich, Switzerland (paul@mecazh.uu.ch)
  5006.    Thu Nov  8 16:01:17 1990
  5007. </DIV>
  5008. <DIV class="LEFT">Upgraded to XPM version 3 by
  5009.    Arnaud Le Hors (lehors@mirsa.inria.fr)
  5010.    Tue Apr 9 1991
  5011. </DIV>
  5012. <DIV class="LEFT">
  5013. ppmtoyuv125 March 91
  5014. </DIV>
  5015. <DIV class="LEFT">NAME
  5016. ppmtoyuv - convert a portable pixmap into an Abekas YUV file
  5017. SYNOPSIS
  5018. <B>ppmtoyuv</B>
  5019. [<I>ppmfile</I>]
  5020. DESCRIPTION
  5021. Reads a portable pixmap as input.
  5022. Produces an Abekas YUV file as output.
  5023. SEE ALSO
  5024. yuvtoppm(1), ppm(5)
  5025. AUTHOR
  5026. Marc Boucher (marc@PostImage.COM),
  5027. based on Example Conversion Program, A60/A64 Digital Video Interface
  5028. Manual, page 69.
  5029. </DIV>
  5030. <DIV class="LEFT">©1991 by DHD PostImage Inc.
  5031. </DIV>
  5032. <DIV class="LEFT">©1987 by Abekas Video Systems Inc.
  5033. </DIV>
  5034. <DIV class="LEFT">
  5035. ppmtoyuvsplit19 September 1993
  5036. </DIV>
  5037. <DIV class="LEFT">NAME
  5038. ppmtoyuvsplit - convert a portable pixmap into 3 subsampled raw YUV files
  5039. SYNOPSIS
  5040. <B>ppmtoyuvsplit</B>
  5041. <I>basename</I>
  5042. [<I>ppmfile</I>]
  5043. DESCRIPTION
  5044. Reads a portable pixmap as input.
  5045. Produces 3 raw files basename.Y, basename.U and basename.V as output.
  5046. These files are the subsampled raw YUV representation of the input
  5047. pixmap, as required by the Stanford MPEG codec. The subsampling is done
  5048. by arithmetic mean of 4 pixels colors into one. The YUV values are scaled
  5049. according to CCIR.601, as assumed by MPEG.
  5050. SEE ALSO
  5051. mpeg(1), ppm(5)
  5052. AUTHOR
  5053. ©1993 by Andre Beck. (Andre_Beck@IRS.Inf.TU-Dresden.de).
  5054. </DIV>
  5055. <DIV class="LEFT">Based on ppmtoyuv.c.
  5056. </DIV>
  5057. <DIV class="LEFT">
  5058. psidtopgm102 August 89
  5059. </DIV>
  5060. <DIV class="LEFT">NAME
  5061. psidtopgm - convert PostScript ``image'' data into a portable graymap
  5062. SYNOPSIS
  5063. <B>psidtopgm</B>
  5064. <I>width height bits/sample</I>
  5065. [<I>imagedata</I>]
  5066. DESCRIPTION
  5067. Reads the ``image'' data from a PostScript file as input.
  5068. Produces a portable graymap as output.
  5069. </DIV>
  5070. <DIV class="LEFT">This is a very simple and limited program, and is here only because
  5071. so many people have asked for it.
  5072. To use it you have to
  5073. <B>manually</B>
  5074. extract the readhexstring data portion from your PostScript file, and then
  5075. give the width, height, and bits/sample on the command line.
  5076. Before you attempt this, you should
  5077. <B>at least</B>
  5078. read the description of the ``image'' operator in the PostScript Language
  5079. Reference Manual.
  5080. </DIV>
  5081. <DIV class="LEFT">It would probably not be too hard to write a script that uses this filter
  5082. to read a specific variety of PostScript image, but the variation is too
  5083. great to make a general-purpose reader.
  5084. Unless, of course, you want to write a full-fledged PostScript interpreter...
  5085. SEE ALSO
  5086. pnmtops(1), pgm(5)
  5087. AUTHOR
  5088. ©1989 by Jef Poskanzer.
  5089. </DIV>
  5090. <DIV class="LEFT">
  5091. qrttoppm125 August 1989
  5092. </DIV>
  5093. <DIV class="LEFT">NAME
  5094. qrttoppm - convert output from the QRT ray tracer into a portable pixmap
  5095. SYNOPSIS
  5096. <B>qrttoppm</B>
  5097. [<I>qrtfile</I>]
  5098. DESCRIPTION
  5099. Reads a QRT file as input.
  5100. Produces a portable pixmap as output.
  5101. SEE ALSO
  5102. ppm(5)
  5103. AUTHOR
  5104. ©1989 by Jef Poskanzer.
  5105. </DIV>
  5106. <DIV class="LEFT">
  5107. rasttopnm113 January 1991
  5108. </DIV>
  5109. <DIV class="LEFT">NAME
  5110. rasttopnm - convert a Sun rasterfile into a portable anymap
  5111. SYNOPSIS
  5112. <B>rasttopnm</B>
  5113. [<I>rastfile</I>]
  5114. DESCRIPTION
  5115. Reads a Sun rasterfile as input.
  5116. Produces a portable anymap as output.
  5117. The type of the output file depends on the input file - if it's
  5118. black & white, a
  5119. <I>pbm</I>
  5120. file is written, else if it's grayscale a
  5121. <I>pgm</I>
  5122. file, else a
  5123. <I>ppm</I>
  5124. file.  The program tells you which type it is writing.
  5125. SEE ALSO
  5126. pnmtorast(1), pnm(5)
  5127. AUTHOR
  5128. ©1989, 1991 by Jef Poskanzer.
  5129. </DIV>
  5130. <DIV class="LEFT">
  5131. rawtopgm115 June 1993
  5132. </DIV>
  5133. <DIV class="LEFT">NAME
  5134. rawtopgm - convert raw grayscale bytes into a portable graymap
  5135. SYNOPSIS
  5136. <B>rawtopgm</B>
  5137. [<B>-headerskip</B>
  5138. <I>N</I>]
  5139. [<B>-rowskip</B>
  5140. <I>N</I>]
  5141. [<B>-tb</B>|<B>-topbottom</B>]
  5142. [<I>width</I>
  5143. <I>height</I>]
  5144. [<I>imagedata</I>]
  5145. DESCRIPTION
  5146. Reads raw grayscale bytes as input.
  5147. Produces a portable graymap as output.
  5148. The input file is just grayscale bytes.
  5149. If you don't specify the width and height on the command line,
  5150. the program will check the size of the image and try to make
  5151. a quadratic image of it. It is an error to supply a non
  5152. quadratic image without specifying width and height.
  5153. The maxval is assumed to be 255.
  5154. OPTIONS
  5155.   STYLE="" SRC="img53.png"
  5156.  ALT="\begin{TPlist}{{\bf -headerskip}}
  5157. \item[{{\bf -headerskip}}]
  5158. If the file has a h...
  5159. ...is is equivalent to
  5160. {\bf rawtopgm\ [file]\ $\vert$\ pnmflip\ -tb .}
  5161. \end{TPlist}">
  5162. </DIV>
  5163. <DIV class="LEFT">BUGS
  5164. If you don't specify the image width and height, the program will
  5165. try to read the entire image to a memory buffer. If you get a
  5166. message that states that you are out of memory, try to specify the width
  5167. and height on the command line. Also, the -tb option consumes much
  5168. memory.
  5169. SEE ALSO
  5170. pgm(5), rawtoppm(1), pnmflip(1)
  5171. AUTHORS
  5172. ©1989 by Jef Poskanzer.
  5173. Modified June 1993 by Oliver Trepte (oliver@fysik4.kth.se).
  5174. </DIV>
  5175. <DIV class="LEFT">
  5176. rawtoppm106 February 1991
  5177. </DIV>
  5178. <DIV class="LEFT">NAME
  5179. rawtoppm - convert raw RGB bytes into a portable pixmap
  5180. SYNOPSIS
  5181. <B>rawtoppm</B>
  5182. [<B>-headerskip</B>
  5183. <I>N</I>]
  5184. [<B>-rowskip</B>
  5185. <I>N</I>]
  5186. [<B>-rgb</B>|<B>-rbg</B>|<B>-grb</B>
  5187. |<B>-gbr</B>|<B>-brg</B>|<B>-bgr</B>
  5188. [<B>-interpixel</B>|<B>-interrow</B>]
  5189. <I>width height</I>
  5190. [<I>imagedata</I>]
  5191. DESCRIPTION
  5192. Reads raw RGB bytes as input.
  5193. Produces a portable pixmap as output.
  5194. The input file is just RGB bytes.
  5195. You have to specify the width and height on the command line,
  5196. since the program obviously can't get them from the file.
  5197. The maxval is assumed to be 255.
  5198. If the resulting image is upside down, run it through
  5199. <B>pnmflip -tb .</B>
  5200. OPTIONS
  5201.   STYLE="" SRC="img54.png"
  5202.  ALT="\begin{TPlist}{{\bf -headerskip}}
  5203. \item[{{\bf -headerskip}}]
  5204. If the file has a h...
  5205. ...o a PGM file with rawtopgm, and then combining them
  5206. with rgb3toppm.
  5207. \end{TPlist}">
  5208. </DIV>
  5209. <DIV class="LEFT">SEE ALSO
  5210. ppm(5), rawtopgm(1), rgb3toppm(1), pnmflip(1)
  5211. AUTHOR
  5212. ©1991 by Jef Poskanzer.
  5213. </DIV>
  5214. <DIV class="LEFT">
  5215. rgb3toppm115 February 1990
  5216. </DIV>
  5217. <DIV class="LEFT">NAME
  5218. rgb3toppm - combine three portable graymaps into one portable pixmap
  5219. SYNOPSIS
  5220. <B>rgb3toppm</B>
  5221. <I>redpgmfile greenpgmfile bluepgmfile</I>
  5222. DESCRIPTION
  5223. Reads three portable graymaps as input.
  5224. Combines them and produces one portable pixmap as output.
  5225. SEE ALSO
  5226. ppmtorgb3(1), pgmtoppm(1), ppmtopgm(1), ppm(5), pgm(5)
  5227. AUTHOR
  5228. ©1991 by Jef Poskanzer.
  5229. </DIV>
  5230. <DIV class="LEFT">
  5231. sirtopnm120 March 1991
  5232. </DIV>
  5233. <DIV class="LEFT">NAME
  5234. sirtopnm - convert a Solitaire file into a portable anymap
  5235. SYNOPSIS
  5236. <B>sirtopnm</B>
  5237. [<I>sirfile</I>]
  5238. DESCRIPTION
  5239. Reads a Solitaire Image Recorder file as input.
  5240. Produces a portable anymap as output.
  5241. The type of the output file depends on the input file - if it's
  5242. an MGI TYPE 17 file, a
  5243. <I>pgm</I>
  5244. file is written. If it's an MGI TYPE 11 file, a
  5245. <I>ppm</I>
  5246. file is written.  The program tells you which type it is writing.
  5247. </DIV>
  5248. <DIV class="LEFT">SEE ALSO
  5249. pnmtosir(1), pnm(5)
  5250. AUTHOR
  5251. ©1991 by Marvin Landis.
  5252. </DIV>
  5253. <DIV class="LEFT">
  5254. sldtoppm110 October 1991
  5255. </DIV>
  5256. <DIV class="LEFT">NAME
  5257. sldtoppm - convert an AutoCAD slide file into a portable pixmap
  5258. SYNOPSIS
  5259. </DIV>
  5260. <DIV class="LEFT"><B>sldtoppm</B>
  5261. 'in 14n
  5262. [<B>-adjust</B>]
  5263. [<B>-dir</B>]
  5264. [<B>-height</B>|<B>-ysize</B>
  5265. <I>s</I>]
  5266. [<B>-info</B>]
  5267. [<B>-lib</B>|<B>-Lib</B>
  5268. <I>name</I>]
  5269. [<B>-scale</B>
  5270. <I>s</I>]
  5271. [<B>-verbose</B>]
  5272. [<B>-width</B>|<B>-xsize</B>
  5273. <I>s</I>]
  5274. [<I>slidefile</I>]
  5275. -7.0em
  5276. DESCRIPTION
  5277. Reads an AutoCADlide file and outputs a portable pixmap.
  5278. If no
  5279. <I>slidefile</I>
  5280. is specified, input is read from standard input.
  5281. The ppmdraw library is used to convert the vector and polygon
  5282. information in the slide file to a pixmap; see the file ppmdraw.h for
  5283. details on this package.
  5284. OPTIONS
  5285.   STYLE="" SRC="img55.png"
  5286.  ALT="\begin{TPlist}{{\bf -adjust}}
  5287. \item[{{\bf -adjust}}]
  5288. If the display on which the...
  5289. ...ed, the width will be adjusted to preserve the
  5290. pixel aspect ratio.
  5291. \end{TPlist}">
  5292. </DIV>
  5293. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  5294. Only Level 2 slides are converted.  Level 1 format has been obsolete
  5295. since the advent of AutoCAD Release 9 in 1987, and was not portable
  5296. across machine architectures.
  5297. </DIV>
  5298. <DIV class="LEFT">Slide library items with names containing 8 bit (such as ISO) or 16
  5299. bit (Kanji, for example) characters may not be found when chosen with the
  5300. <B>-lib</B>
  5301. option unless
  5302. <B>sldtoppm</B>
  5303. has been built with character set conversion functions appropriate to
  5304. the locale.  You can always retrieve slides from libraries regardless
  5305. of the character set by using the
  5306. <B>-Lib</B>
  5307. option and specifying the precise name of library member.  Use the
  5308. <B>-dir</B>
  5309. option to list the slides in a library if you're unsure of the
  5310. exact name.
  5311. SEE ALSO
  5312. AutoCAD Reference Manual:
  5313. <I>Slide File Format</I>,
  5314. <B>pnmscale</B>(1),
  5315. <B>ppm</B>(5)
  5316. AUTHOR
  5317.     John Walker
  5318.     Autodesk SA
  5319.     Avenue des Champs-Montants 14b
  5320.     CH-2074 MARIN
  5321.     Suisse/Schweiz/Svizzera/Svizra/Switzerland
  5322.   STYLE="" SRC="img23.png"
  5323.  ALT="\begin{TPlist}{Usenet:}
  5324. \item[{Usenet:}]
  5325. kelvin@Autodesk.com
  5326. \item[{Fax:}]
  5327. 038/33 88 15
  5328. \item[{Voice:}]
  5329. 038/33 76 33
  5330. \end{TPlist}">
  5331. </DIV>
  5332. <DIV class="LEFT">Permission to use, copy, modify, and distribute this software and its
  5333. documentation for any purpose and without fee is hereby granted,
  5334. without any conditions or restrictions.  This software is provided ``as
  5335. is'' without express or implied warranty.
  5336. </DIV>
  5337. <DIV class="LEFT">AutoCAD and Autodesk are registered trademarks of Autodesk, Inc.
  5338. </DIV>
  5339. <DIV class="LEFT">
  5340. spctoppm119 July 1990
  5341. </DIV>
  5342. <DIV class="LEFT">NAME
  5343. spctoppm - convert an Atari compressed Spectrum file into a portable pixmap
  5344. SYNOPSIS
  5345. <B>spctoppm</B>
  5346. [<I>spcfile</I>]
  5347. DESCRIPTION
  5348. Reads an Atari compressed Spectrum file as input.
  5349. Produces a portable pixmap as output.
  5350. SEE ALSO
  5351. sputoppm(1), ppm(5)
  5352. AUTHOR
  5353. ©1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
  5354. </DIV>
  5355. <DIV class="LEFT">
  5356. spottopgm1L
  5357. </DIV>
  5358. <DIV class="LEFT">NAME
  5359. spottopgm – convert SPOT satellite images to Portable Greymap format
  5360. SYNTAX
  5361. spottopgm [–1|2|3] [Firstcol Firstline Lastcol Lastline] inputfile
  5362. OPTIONS
  5363.   STYLE="" SRC="img56.png"
  5364.  ALT="\begin{TPlist}{{\bf --1$\vert$2$\vert$3}}
  5365. \item[{{\bf --1$\vert$2$\vert$3}}]
  5366. Ext...
  5367. ...he default rectangle is the width of the input image by 3000 lines.
  5368. \end{TPlist}">
  5369. </DIV>
  5370. <DIV class="LEFT">DESCRIPTION
  5371. <I>Spottopgm</I>
  5372. converts the named
  5373. <B>inputfile</B>
  5374. into Portable Greymap format, defaulting to the first color and the whole
  5375. SPOT image unless specified by the options.
  5376. INSTALLATION
  5377. <B>must</B>
  5378. edit the source program and either define BIGENDIAN or LITTLEENDIAN,
  5379. and fix the typedefs for uint32t, uint16t and uint8t appropriately.
  5380. Currently
  5381. <I>spottopgm</I>
  5382. doesn't determine the length of the input file; this would involve two
  5383. passes over the input file. It defaults to 3000 lines instead.
  5384. </DIV>
  5385. <DIV class="LEFT"><I>Spottopgm</I>
  5386. could extract a three-color image (ppm), but I didn't feel like making the
  5387. program more complicated than it is now. Besides, there is no one-to-one
  5388. correspondence between red, green, blue and infra-red, visible and
  5389. ultra-violet.
  5390. </DIV>
  5391. <DIV class="LEFT">I've only had a limited number of SPOT images to play with, and therefore
  5392. wouldn't guarantee that this will work on any other images.
  5393. AUTHOR
  5394. Warren Toomey  wkt@csadfa.cs.adfa.oz.au
  5395. SEE ALSO
  5396. The rest of the Pbmplus suite.
  5397. </DIV>
  5398. <DIV class="LEFT">
  5399. sputoppm119 July 1990
  5400. </DIV>
  5401. <DIV class="LEFT">NAME
  5402. sputoppm - convert an Atari uncompressed Spectrum file into a portable pixmap
  5403. SYNOPSIS
  5404. <B>sputoppm</B>
  5405. [<I>spufile</I>]
  5406. DESCRIPTION
  5407. Reads an Atari uncompressed Spectrum file as input.
  5408. Produces a portable pixmap as output.
  5409. SEE ALSO
  5410. spctoppm(1), ppm(5)
  5411. AUTHOR
  5412. ©1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
  5413. </DIV>
  5414. <DIV class="LEFT">
  5415. tgatoppm126 August 1989
  5416. </DIV>
  5417. <DIV class="LEFT">NAME
  5418. tgatoppm - convert TrueVision Targa file into a portable pixmap
  5419. SYNOPSIS
  5420. <B>tgatoppm</B>
  5421. [<B>-debug</B>]
  5422. [<I>tgafile</I>]
  5423. DESCRIPTION
  5424. Reads a TrueVision Targa file as input.
  5425. Produces a portable pixmap as output.
  5426. OPTIONS
  5427.   STYLE="" SRC="img57.png"
  5428.  ALT="\begin{TPlist}{{\bf -debug}}
  5429. \item[{{\bf -debug}}]
  5430. Causes the header information to be dumped to stderr.
  5431. \end{TPlist}">
  5432. </DIV>
  5433. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  5434. Should really be in PNM, not PPM.
  5435. SEE ALSO
  5436. ppmtotga(1), ppm(5)
  5437. AUTHOR
  5438. Partially based on tga2rast, version 1.0, by Ian J. MacPhedran.
  5439. </DIV>
  5440. <DIV class="LEFT">©1989 by Jef Poskanzer.
  5441. </DIV>
  5442. <DIV class="LEFT">
  5443. tifftopnm113 January 1991
  5444. </DIV>
  5445. <DIV class="LEFT">NAME
  5446. tifftopnm - convert a TIFF file into a portable anymap
  5447. SYNOPSIS
  5448. <B>tifftopnm</B>
  5449. [<B>-headerdump</B>]
  5450. tifffile
  5451. DESCRIPTION
  5452. Reads a TIFF file as input.
  5453. Produces a portable anymap as output.
  5454. The type of the output file depends on the input file - if it's
  5455. black & white, a
  5456. <I>pbm</I>
  5457. file is written, else if it's grayscale a
  5458. <I>pgm</I>
  5459. file, else a
  5460. <I>ppm</I>
  5461. file.  The program tells you which type it is writing.
  5462. OPTIONS
  5463.   STYLE="" SRC="img58.png"
  5464.  ALT="\begin{TPlist}{{\bf -headerdump}}
  5465. \item[{{\bf -headerdump}}]
  5466. Dump TIFF file info...
  5467. ...rmation may be useful
  5468. in debugging TIFF file conversion problems.
  5469. \end{TPlist}">
  5470. </DIV>
  5471. <DIV class="LEFT">All flags can be abbreviated to their shortest unique prefix.
  5472. SEE ALSO
  5473. pnmtotiff(1), pnm(5)
  5474. This program is not self-contained.  To use it you must fetch the
  5475. TIFF Software package listed in the OTHER.SYSTEMS file and configure
  5476. PBMPLUS to use libtiff.  See PBMPLUS's Makefile for details on this
  5477. configuration.
  5478. AUTHOR
  5479. Derived by Jef Poskanzer from tif2ras.c, which is
  5480. ©1990 by Sun Microsystems, Inc.
  5481. Author: Patrick J. Naughton (naughton@wind.sun.com).
  5482. </DIV>
  5483. <DIV class="LEFT">
  5484. xbmtopbm131 August 1988
  5485. </DIV>
  5486. <DIV class="LEFT">NAME
  5487. xbmtopbm - convert an X11 or X10 bitmap into a portable bitmap
  5488. SYNOPSIS
  5489. <B>xbmtopbm</B>
  5490. [<I>bitmapfile</I>]
  5491. DESCRIPTION
  5492. Reads an X11 or X10 bitmap as input.
  5493. Produces a portable bitmap as output.
  5494. SEE ALSO
  5495. pbmtoxbm(1), pbmtox10bm(1), pbm(5)
  5496. AUTHOR
  5497. ©1988 by Jef Poskanzer.
  5498. </DIV>
  5499. <DIV class="LEFT">
  5500. ximtoppm125 March 1990
  5501. </DIV>
  5502. <DIV class="LEFT">NAME
  5503. ximtoppm - convert an Xim file into a portable pixmap
  5504. SYNOPSIS
  5505. <B>ximtoppm</B>
  5506. [<I>ximfile</I>]
  5507. DESCRIPTION
  5508. Reads an Xim file as input.
  5509. Produces a portable pixmap as output.
  5510. The Xim toolkit is included in the contrib tree of the X.V11R4 release.
  5511. SEE ALSO
  5512. ppm(5)
  5513. AUTHOR
  5514. ©1991 by Jef Poskanzer.
  5515. </DIV>
  5516. <DIV class="LEFT">
  5517. xpmtoppm116 August 1990
  5518. </DIV>
  5519. <DIV class="LEFT">NAME
  5520. xpmtoppm - convert an X11 pixmap into a portable pixmap
  5521. SYNOPSIS
  5522. <B>xpmtoppm</B>
  5523. [<I>xpmfile</I>]
  5524. DESCRIPTION
  5525. Reads an X11 pixmap (XPM version 1 or 3) as input.
  5526. Produces a portable pixmap as output.
  5527. KNOWN BUGS
  5528. The support to XPM version 3 is limited. Comments can only be single lines
  5529. and there must be for every pixel a default colorname for a color type visual.
  5530. SEE ALSO
  5531. ppmtoxpm(1), ppm(5)
  5532. XPM Manual by Arnaud Le Hors (lehors@mirsa.inria.fr).
  5533. AUTHOR
  5534. ©1991 by Jef Poskanzer.
  5535. Upgraded to support XPM version 3 by Arnaud Le Hors
  5536. (lehors@mirsa.inria.fr) Tue Apr 9 1991.
  5537. </DIV>
  5538. <DIV class="LEFT">
  5539. xwdtopnm111 January 1991
  5540. </DIV>
  5541. <DIV class="LEFT">NAME
  5542. xwdtopnm - convert a X11 or X10 window dump file into a portable anymap
  5543. SYNOPSIS
  5544. <B>xwdtopnm</B>
  5545. [<I>xwdfile</I>]
  5546. DESCRIPTION
  5547. Reads a X11 or X10 window dump file as input.
  5548. Produces a portable anymap as output.
  5549. The type of the output file depends on the input file - if it's
  5550. black & white, a
  5551. <I>pbm</I>
  5552. file is written, else if it's grayscale a
  5553. <I>pgm</I>
  5554. file, else a
  5555. <I>ppm</I>
  5556. file.  The program tells you which type it is writing.
  5557. </DIV>
  5558. <DIV class="LEFT">Using this program, you can convert anything on an X workstation's screen
  5559. into an anymap.
  5560. Just display whatever you're interested in, do an xwd, run it through
  5561. xwdtopnm, and then use pnmcut to select the part you want.
  5562. I haven't tested this tool with very many configurations, so there are
  5563. probably bugs.
  5564. Please let me know if you find any.
  5565. SEE ALSO
  5566. pnmtoxwd(1), pnm(5), xwd(1)
  5567. AUTHOR
  5568. ©1989, 1991 by Jef Poskanzer.
  5569. </DIV>
  5570. <DIV class="LEFT">
  5571. ybmtopbm106 March 1990
  5572. </DIV>
  5573. <DIV class="LEFT">NAME
  5574. ybmtopbm - convert a Bennet Yee ``face'' file into a portable bitmap
  5575. SYNOPSIS
  5576. <B>ybmtopbm</B>
  5577. [<I>facefile</I>]
  5578. DESCRIPTION
  5579. Reads a file acceptable to the
  5580. <I>face</I>
  5581. <I>xbm</I>
  5582. programs by Bennet Yee (bsy+@cs.cmu.edu).
  5583. Writes a portable bitmap as output.
  5584. SEE ALSO
  5585. pbmtoybm(1), pbm(5), face(1), face(5), xbm(1)
  5586. AUTHOR
  5587. ©1991 by Jamie Zawinski and Jef Poskanzer.
  5588. </DIV>
  5589. <DIV class="LEFT">
  5590. yuvsplittoppm126 August 93
  5591. </DIV>
  5592. <DIV class="LEFT">NAME
  5593. yuvplittoppm - convert a Y- an U- and a V-file into a portable pixmap.
  5594. SYNOPSIS
  5595. <B>yuvsplittoppm</B>
  5596. <I>basename width height</I>
  5597. [-ccir601]
  5598. DESCRIPTION
  5599. Reads three files, containing the YUV components, as input.
  5600. These files are
  5601. <I>basename</I>
  5602. <I>basename</I>
  5603. <I>basename</I>
  5604. Produces a portable pixmap on stdout.
  5605. </DIV>
  5606. <DIV class="LEFT">Since the YUV files are raw files, the dimensions
  5607. <I>width</I>
  5608. <I>height</I>
  5609. must be specified on the command line.
  5610. OPTIONS
  5611.   STYLE="" SRC="img59.png"
  5612.  ALT="\begin{TPlist}{{\bf -ccir601}}
  5613. \item[{{\bf -ccir601}}]
  5614. Assumes that the YUV trip...
  5615. ...CIR 601 (MPEG) standard. Else, the JFIF (JPEG) standard is assumed.
  5616. \end{TPlist}">
  5617. </DIV>
  5618. <DIV class="LEFT">SEE ALSO
  5619. ppmtoyuvsplit(1), yuvtoppm(1), ppm(5)
  5620. AUTHOR
  5621. Marcel Wijkstra (wijkstra@fwi.uva.nl), based on <I>ppmtoyuvsplit.</I>
  5622. </DIV>
  5623. <DIV class="LEFT">
  5624. yuvtoppm125 March 91
  5625. </DIV>
  5626. <DIV class="LEFT">NAME
  5627. yuvtoppm - convert Abekas YUV bytes into a portable pixmap
  5628. SYNOPSIS
  5629. <B>yuvtoppm</B>
  5630. <I>width height</I>
  5631. [<I>imagedata</I>]
  5632. DESCRIPTION
  5633. Reads raw Abekas YUV bytes as input.
  5634. Produces a portable pixmap as output.
  5635. The input file is just YUV bytes.
  5636. You have to specify the width and height on the command line,
  5637. since the program obviously can't get them from the file.
  5638. The maxval is assumed to be 255.
  5639. SEE ALSO
  5640. ppmtoyuv(1), ppm(5)
  5641. AUTHOR
  5642. Marc Boucher (marc@PostImage.COM),
  5643. based on Example Conversion Program, A60/A64 Digital Video Interface
  5644. Manual, page 69.
  5645. </DIV>
  5646. <DIV class="LEFT">©1991 by DHD PostImage Inc.
  5647. </DIV>
  5648. <DIV class="LEFT">©1987 by Abekas Video Systems Inc.
  5649. </DIV>
  5650. <DIV class="LEFT">
  5651. zeisstopnm115 June 1993
  5652. </DIV>
  5653. <DIV class="LEFT">NAME
  5654. zeisstopnm - convert a Zeiss confocal file into a portable anymap
  5655. SYNOPSIS
  5656. <B>zeisstopnm</B>
  5657. [<I>-pgm</I>
  5658. <I>-ppm</I>]
  5659. [<I>zeissfile</I>]
  5660. DESCRIPTION
  5661. Reads a Zeiss confocal file as input.
  5662. Produces a portable anymap as output.
  5663. The type of the output file depends on the input file -
  5664. if it's grayscale a
  5665. <I>pgm</I>
  5666. file, else a
  5667. <I>ppm</I>
  5668. file will be produced.
  5669. The program tells you which type it is writing.
  5670. OPTIONS
  5671.   STYLE="" SRC="img60.png"
  5672.  ALT="\begin{TPlist}{{\bf -pgm}}
  5673. \item[{{\bf -pgm}}]
  5674. Force the output to be a
  5675. {\it pgm}
  5676. file.
  5677. \item[{{\bf -ppm}}]
  5678. Force the output to be a
  5679. {\it ppm}
  5680. file.
  5681. \end{TPlist}">
  5682. </DIV>
  5683. <DIV class="LEFT">SEE ALSO
  5684. pnm(5)
  5685. AUTHOR
  5686. ©1993 by Oliver Trepte (oliver@fysik4.kth.se).
  5687. </DIV>
  5688. </BODY>
  5689. </HTML>
  5690.