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
// 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 |
---|---|