Harlequin RIP SDK
photoinksplitter.c File Reference

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)]
 

Detailed Description

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 Documentation

◆ comp_names_t

typedef struct comp_names_t comp_names_t

Details of one component name.

◆ pi_details_t

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'.

Variable Documentation

◆ comp_names

comp_names_t comp_names[(4)]
static
Initial value:
= {
}
#define STRING_AND_LENGTH(s1_)
Definition: std.h:150

Enumeration of the CMYK components before photoink splitting. These names should match the pseudo-file names used in the CustomConversions procedures.

◆ pi_details

pi_details_t pi_details[(2)]
static

Photoink device specific data for photoink2212% and photoink2213%.