ErrorDiffusionDithererJarvisJudiceNinke Property

Gets an ErrorDiffusionDitherer instance using the filter proposed by Jarvis, Judice and Ninke in 1976. Uses a 5x3 matrix so the processing is slower than by the original Floyd-Steinberg filter but distributes errors in a wider range.

See the online help for an example with images.

Definition

Namespace: KGySoft.Drawing.Imaging
Assembly: KGySoft.Drawing.Core (in KGySoft.Drawing.Core.dll) Version: 9.1.1
C#
public static ErrorDiffusionDitherer JarvisJudiceNinke { get; }

Property Value

ErrorDiffusionDitherer

Examples

The following example demonstrates how to use the ditherer returned by this property:
C#
public static IReadWriteBitmapData ToDitheredJarvisJudiceNinke(IReadWriteBitmapData source, IQuantizer quantizer)
{
    IDitherer ditherer = ErrorDiffusionDitherer.JarvisJudiceNinke;

    // a.) this solution returns a new bitmap data and does not change the original one:
    return source.Clone(quantizer.PixelFormatHint, quantizer, ditherer);

    // b.) alternatively, you can perform the dithering directly on the source bitmap data:
    source.Dither(quantizer, ditherer);
    return source;
}

The example above may produce the following results:

Original image
Quantized and dithered image

Color hues with alpha gradient
Color hues with alpha gradient

Grayscale color shades with different bit depths
Grayscale color shades

Grayscale color shades with black and white palette using Jarvis-Judice-Ninke dithering
Quantizing with black and white palette

See Also