Inspired by a forum post on osdev.org about image colour down-sampling I decided to have a crack at writing a program which could take a 24-bit image and convert it down to any lesser image format. The picture above shows an image split down the middle. On the right is the original 24-bit colour version and on the left is a 8-bit per pixel version with 2 bits for the red colour channel and 3 bits for the green and blue colour channels (rather than having a specific palette for the image I am down-sampling to a 2:3:3 BPP image). As you can see the colour loss is acceptable and despite the limitations it still looks nice. Obviously the image could be improved further by choosing a colour palette suitable for the image but that is for another project.

I’ll post the code once I have cleaned it up a bit and smoothed it out so it doesn’t have so many hard coded values.

This is the output of the show cdp neighbors command on my Cisco 2610XM router. It shows my computer as the device connected to the Fastethernet 0/0 port.