Subpixel Text Encoding

Matt Sarnoff, 10.22.08

Each pixel on your monitor is actually composed of three sub-pixels: one red, one green, and one blue. On an LCD monitor, subpixels are usually three thin strips in a row (though on some monitors, they may be three bars arranged vertically).

For some time, manufacturers have developed ways to smooth the appearance of text and shapes by taking advantage of this increased resolution; Wikipedia can explain it much better than I can.

I was thinking about this, and I decided to try something. I made this image:

At 12x zoom, it looks like this, just a few innocent columns of pixels:

However, on a standard LCD monitor, if you look at it really closely, or with a magnifying glass or digital camera, you see this:


Then I made this image:

Here it is at 1200%:

It appears to be a jumble of pixels, but if you look closely at the screen, we see:

By using 2x5 grids for each character, you can create more detailed 5x5-subpixel characters. Since the blue phosphor in the rightmost column is never used, it can serve as a separator and allow characters to be placed right next to each other without a pixel in between. However, the characters are slightly more recognizable to the naked eye at actual size.


The technique probably isn't useful for encryption or steganography, but it does look cool. It could be used to create small text "microdots" to exchange with your friends. Unfortunately, on CRT monitors or some LCDs with different subpixel layouts, the effect cannot be seen correctly.

Here's one more hidden message:

At 12x:

And the message revealed:


Photos were taken with a Canon PowerShot SD800 IS (7.1 megapixels) using Digital Macro mode.
Images were displayed on an Apple 30" Cinema Display.
msarnoff.org