LCD anti-aliasing

LCDAA provides LCD anti-aliasing for 24-bit RGB images in Java.


LCD anti-aliasing attains improved image quality on LCD devices by directly addressing the red green and blue pixels on the device to achieve increased resolution.

Colour balance is maintained by distributing colour energy to surrounding pixels - taking advantage of the fact that the human visual system has better monochrome resolution than colour resolution.

The effect produces the best results when used with high contrast images. It has no effect on images which consist entirely of shades of one of the primary colours.

In practice the majority images have a fair degree of contrast - due to common effects such as shadows and highlights.


It accepts images in PNG, GIF or JPEG formats.

It writes images in PNG format.

The output images have their width reduced in size by a factor of three.

It uses the simplest 1:1:1 colour balancing technique;

It's output is suitable for the most common sort of LCD - that with R-G-B pixels. If you have -B-G-R pixels, you will need to horizontally flip the resulting image before using it.


It needs Java 1.4 - or greater - to run.


The program has a command-line interface - use java LCDAA <infile> <outfile> to run it.

There's also a GUI. Here's a snapshot of it in action:


The number of devices with small LCD screens is rocketing upwards now that mobile phones are routinely including cameras.

I expect this application to be used by those making wallpaper, photographs or animated images for these kinds of devices - in the cases where image quality is regarded as important.


Currently the wishlist looks like this:

  • Support 1:2:3:2:1 colour balancing;
  • Support wraparound and reflection at the left and rihgt edges of the image;
  • Support image transparency;
  • Support image resizing.
  • Support exporting images in more formats;

Java Web Start

If you run using Java Web Start, the program will request access to your machine on the basis of my phony developer certificate.

The program is signed because the program needs to read and write files from your hard drive to be much use.

The certificate is phony because I haven't paid up for an authenticated certificate yet.


Input Output


This program and its source code have been placed in the public domain.


Run using Java Web Start.

Download the executable Jar file.

Download the Java source code.

Index | Links |