The Fading of Printed Photos

The Fading of Printed Photos

A model for the fading of printed photos, complete with a small applet to demonstrate the model.

1. Printed Photos

Photos are usually printed in three or four inks, with one for each of the three primary colors and black. When the photo is exposed to the elements these inks degrade over time and produces the familiar "faded photo" look.

2. Model

We make the following assumptions:

  1. the inks consist of particles

  2. the degradation process is a stochastic process where each particle, for each time step, has a given fixed probability to degrade to an invisible state

  3. each pixel in a digital image can be modeled as a set of buckets, one for each primary color, that contain ink particles in amounts proportional to the amount of ink required to represent the primary color in that pixel

With these three assumptions we can set up a simple model for the decay.

  1. First, we convert the RGB[a] image to CMY[b] color space, since we are dealing with subtractive color synthesis[c].

  2. Each pixel is now a CMY triplet, and we will consider each channel in isolation. Given the probabilities of decay for the C, M and Y particles being Pc, Pm and Py, respectively, for each C, M and Y value and each time step:

    1. multiply by the probability that a particle will decay:


      C' = CPc, M' = MPm, Y' = YPy

  3. Convert C'M'Y' back into RGB.

A more interesting model is obtained if we also assume that particles may shield each other. In that case, the probability that a particle will decay isn't constant - it is inversely proportional to the number of non-decayed particles in the bucket. The decay accelerates at the end. We model this by extending the computation with a second set of decay rates, Dc, Dm and Dy and extend the time step to:


C' = CPc - (1 - C)Dc, M' = MPm - (1 - M)Dm, Y' = YPy - (1 - Y)Dy

3. The Application

Fade[d] - requires HTML5 canvas and optional FileReader support. So far, I've only tested it with Firefox 3.6 and Chrome 5.

4. Sample Result

For those not using Firefox or a compatible browser - here's a sample result. The following values were used in the algorithm:

P 0.80 0.90 0.80
D 0.02 0.05 0.05
Result of preset "bluish" with one time step.
Result of preset "bluish" with one time step.

2010-06-18, updated 2010-06-19