A method of reproducing photographs in print, called halftoning, involves projecting the negative through a screen to create an array of "dots," sized or spaced proportional to the amount of light allowed through to the screen by the negative. This allows the illusion of value reproduction using only a single tone of ink. To extend this technique to color photographs, three screens are used, one each for each of the primary subtractive colors (cyan, magenta, and Yellow). Normally a key (black) is included as well. Each screen is offset and angled to avoid moire patterns, the visual analog to the "beating" heard when two tones close in pitch are heard together.
For my final project in CIS601, I wrote some software to reproduce this process in software. The basic idea is to take a digital input file, decode into separate cyan, magenta, and yellow channels, rotate the channels to put their screen angles at 0 degrees, generate the halftone dots along the x and y axes, rotate the newly dotted channels back so the dots appear along the proper screen angles, and finally compose the channels back into an image in JPEG or PNG format for viewing on a computer.