This program is part of Netpbm.
ppmtoicr reads a PPM file as input. Produces an NCSA Telnet Interactive Color Raster graphic file as output. If ppmfile is not supplied, ppmtoicr reads from Standard Input.
Interactive Color Raster (ICR) is a protocol for displaying raster graphics on workstation screens. The protocol is implemented in NCSA Telnet for the Macintosh version 2.3. The ICR protocol shares characteristics of the Tektronix graphics terminal emulation protocol. For example, escape sequences are used to control the display.
ppmtoicr will output the appropriate sequences to create a window of the dimensions of the input image, create a colormap of up to 256 colors on the display, then load the picture data into the window.
Note that there is no icrtoppm tool - this transformation is one way.
ppmtoicr ppmfileThis will create a window named ppmfile on the display with the correct dimensions for ppmfile, create and download a colormap of up to 256 colors, and download the picture into the window. You may achieve the same effect with the following sequence:
ppmtoicr ppmfile > filename cat filename
To display a GIF file using the protocol in a window titled after the input file, zoom the displayed image by a factor of 2, and run-length encode the data:
giftopnm giffile | ppmtoicr -w giffile -r -e 2
The protocol uses frequent fflush() calls to speed up display. If you save the output to a file for later display via cat, ppmtoicr will draw much more slowly. In either case, increasing the blocksize limit on the display will speed up transmission substantially.
NCSA Telnet for the Macintosh, University of Illinois at Urbana-Champaign (1989)
Until Netpbm 10.71 (June 2015), there was a -rle option documented, which was said to cause the output to use run length encoding compression. But because of a simple bug in option processing code, the option never had any effect. And the compression code did not look like it worked anyway and would take a fair amount of work to fix. Because it was unlikely anyone would ever use this program again, much less want to use run length encoding, we removed it from the documentation rather than fix the code.