This program is part of Netpbm. pbmtoascii reads a PBM image as input and produces a somewhat crude ASCII graphic image as output.
To convert back, use asciitopgm.
The -1x2 and -2x4 options give you two alternate ways for the pixels to get mapped to characters. With 1x2, the default, each character represents a group of 1 pixel across by 2 pixels down. With -2x4, each character represents 2 pixels across by 4 pixels down. With the 1x2 mode you can see the individual pixels, so it's useful for previewing small images on a non-graphics terminal. The 2x4 mode lets you display larger images on a standard 80-column display, but it obscures pixel-level details. 2x4 mode is also good for displaying PGM images:
pamscale -width 158 | pnmnorm | pamditherbw -thresholdshould give good results.