Color dithering using Jarvis, Judice and Ninke error diffusion.

Namespace:  AForge.Imaging.ColorReduction
Assembly:  AForge.Imaging (in AForge.Imaging.dll) Version: 2.2.5.0 (2.2.5.0)

Syntax

C#
public sealed class JarvisJudiceNinkeColorDithering : ColorErrorDiffusionToAdjacentNeighbors

Remarks

The image processing routine represents color dithering algorithm, which is based on error diffusion dithering with Jarvis-Judice-Ninke coefficients. Error is diffused on 12 neighbor pixels with next coefficients:

Copy 
        | * | 7 | 5 |
| 3 | 5 | 7 | 5 | 3 |
| 1 | 3 | 5 | 3 | 1 |

/ 48

The image processing routine accepts 24/32 bpp color images for processing. As a result this routine produces 4 bpp or 8 bpp indexed image, which depends on size of the specified color table - 4 bpp result for color tables with 16 colors or less; 8 bpp result for larger color tables.

Sample usage:

CopyC#
// create color image quantization routine
ColorImageQuantizer ciq = new ColorImageQuantizer( new MedianCutQuantizer( ) );
// create 32 colors table
Color[] colorTable = ciq.CalculatePalette( image, 32 );
// create dithering routine
JarvisJudiceNinkeColorDithering dithering = new JarvisJudiceNinkeColorDithering( );
dithering.ColorTable = colorTable;
// apply the dithering routine
Bitmap newImage = dithering.Apply( image );

Initial image:

Result image:

Inheritance Hierarchy

See Also