Skip to main content
Skip table of contents

Error Diffusion Screens (EDS)

Introduction

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:

Floyd-Steinberg
CPP
// 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.

Downloads

Installer Downloads:

Workbench

Test program

EDSWorkbench.exe

EdsTestHarness.cpp


JavaScript errors detected

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

If this problem persists, please contact our support.