Skip to main content
Skip table of contents

Error Diffusion Screens (EDS)


Mako's renderer offers error diffusion screening, using popular algorithms such as Floyd-Steinberg or Stucki.

A class, IJawsRenderer::CEDSHalftone enables images to be rendered using a halftone representing an error diffusion screen. It allows the production of results containing a variable number of gray levels per channel, using a range of error diffusion screens.

This class may be used for both monochrome and color rendering with renderScreened() and renderScreenedToFrameBuffers().

Rather than only offer predefined EDS screens, the class allows the user to specify parameters that modify the algorithm. For example:

// The halftone - this example is Floyd Steinberg with drop sizes of 3,
// serpentine enabled and no perturbation
IJawsRenderer::CEDSHalftone halftone;
halftone.dropSizes = 3;
halftone.rows = 2;
halftone.columns = 3;
halftone.pixelColumn = 1;
halftone.denominator = 16;
halftone.weights[0] = 0; halftone.weights[1] = 0; halftone.weights[2] = 7; halftone.weights[3] = 0; halftone.weights[4] = 0;
halftone.weights[5] = 3; halftone.weights[6] = 5; halftone.weights[7] = 1; halftone.weights[8] = 0; halftone.weights[9] = 0;
halftone.weights[10] = 0; halftone.weights[11] = 0; halftone.weights[12] = 0; halftone.weights[13] = 0; halftone.weights[14] = 0;
halftone.weights[15] = 0; halftone.weights[16] = 0; halftone.weights[17] = 0; halftone.weights[18] = 0; halftone.weights[19] = 0;
halftone.useSerpentine = true;
halftone.perturbation = 0.0;

EDS Workbench

A Windows-based utility is available that enables a user to load a file (image or PDF) and experiment with these values and see their effect immediately, on-screen.

It can also generate a code snippet for use with a Mako C++ project, or as parameters for Jaws RIP.

An installer can downloaded from the link on this page.


Installer Downloads:


Test program



JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.