Example of a PostScript device type to implement photoink splitting. This example is unusual in that it is split into two files. The photoinksplitter.c file (this file) contains the device specific code for light/dark splitting algorithms. It should be rewritten for each device. The photoinkdev.c file is in skinkit. It contains boilerplate code for a PostScript device that acts as the intermediary between the RIP and the photoink splitting algorithms. This file is not expected to require any changes. More...
#include "hhrsdk.h"
Data Structures | |
struct | comp_names_t |
struct | pi_details_t |
Typedefs | |
typedef struct comp_names_t | comp_names_t |
typedef struct pi_details_t | pi_details_t |
Variables | |
static comp_names_t | comp_names [(4)] |
static pi_details_t | pi_details [(2)] |
Example of a PostScript device type to implement photoink splitting. This example is unusual in that it is split into two files. The photoinksplitter.c file (this file) contains the device specific code for light/dark splitting algorithms. It should be rewritten for each device. The photoinkdev.c file is in skinkit. It contains boilerplate code for a PostScript device that acts as the intermediary between the RIP and the photoink splitting algorithms. This file is not expected to require any changes.
The device specific photoink splitting algorithms are implemented in the pi_splitter() function in this file. This example contains simple algorithms for the %photoink2212% and %photoink2213% devices, which split CMYK into 7 and 8 photoink components respectively. These devices are instantiated in SW/Sys/ExtraDevices.
In association with these devices are the Photoink entries of ColorantFamilies which are provided in the PhotoinkBand300dpi TestConfig. In particular, the CustomConversions procedures are executed by the RIP when photoink splitting is required. In turn, these have been written to trampoline onto these photoink devices.
The order of the photoink colorants is determined by the Colorants array in the ColorantFamily entry; this can be rearranged suitable for a particular device.
typedef struct comp_names_t comp_names_t |
Details of one component name.
typedef struct pi_details_t pi_details_t |
Details about the splitting within one photoink device, including params used by the splitter function. Each CMYK component uses 'n_split_components' inks, which must be <= MAX_SPLIT_COMPONENTS. Each ink is non-zero within the range of tint values 'start_at_tint' to 'end_at_tint', with it's maximum value at the tint value of 'max_at_tint'. The implementation of pi_splitter() determines the shape of the curve within this range. The ranges of the inks may overlap. The comps entries must be in the same order as 'comp_names'.
|
static |
Enumeration of the CMYK components before photoink splitting. These names should match the pseudo-file names used in the CustomConversions procedures.
|
static |
Photoink device specific data for photoink2212% and photoink2213%.