Mooncore
BunComp

On the left is the original photograph, with 67345 colors. Beside it is a 256-color version, rendered with settings Bias 0, YCbCr, no flat favoring, no palette presets, and quarterdithering. Note, particularly, how the blue eye is faithfully reproduced. Many color reduction algorithms focus on histogram weights, and so underrepresent colors that cover only a small area of the image, even if that area is supposed to stand out. My algorithm does not discriminate against minority colors.

Dog in 24-bit RGBDog in 256 colors

And for fun, here is a version using the EGA palette presets, RGB color space with checkerboard dithering; and a CGA presets version, RGB color space with horizontal bar dithering.

Dog in 16 colorsDog in 4 colors

Here is a double-panel comic. The first image has 13425 different colors, and you can count about 20 different flat colors on the characters. The second image has been reduced to 256 colors, with flat color detection on, and using error-diffusive Sierra Lite dithering. Note, that the characters remain untouched by dithering, except for the brown hues and the dark hues, where the dithering is subtle enough to pass.

It is a good idea to optimise PNG's lossless compression with Ken Silverman's PNGOut, or the open-source pngcrush, or another similar utility. The first image comes to 101 912 bytes; the second comes to 51 220 bytes, cutting the graphics bandwidth to half. Using an ordered dithering algorithm instead of error-diffusive may look good enough for some images, bringing the 256-color size to 30k bytes or less.

A small example webcomic, 24-bit RGB
A small example webcomic, reduced to 256 colors

You might even go for a diffusively dithered 16-color image, slashing the file size to 35 133 bytes. Then again, you might not. The original had more than 16 flat colors alone, so some disturbing dithering must take place. Nevertheless, note how the important flat colors are faithfully represented.

A small example webcomic, reduced to 16 colors

Finally, an alpha demonstration. On the left is the original, a 32-bit RGBA image. In the middle, a 256-color version, making full use of PNG's indexed-color alpha values. And on the right, a 16-color version, with horizontal bar dithering.

Guy with transparent armGuy with transparent arm, 256 colorsGuy with transparent arm, 16 colors