From 22f703cab05b7cd368f4de9e03991b7664dc5022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 1 Sep 2014 13:56:46 +0200 Subject: Initial import of argyll version 1.5.1-8 --- profile/prof.h | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 profile/prof.h (limited to 'profile/prof.h') diff --git a/profile/prof.h b/profile/prof.h new file mode 100644 index 0000000..074bb73 --- /dev/null +++ b/profile/prof.h @@ -0,0 +1,109 @@ +#ifndef PROF_H +#define PROF_H +/* + * ICC Profile creation library. + * + * Author: Graeme W. Gill + * Date: 11/10/00 + * Version: 1.00 + * + * Copyright 2000 Graeme W. Gill + * All rights reserved. + * + * This material is licenced under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 :- + * see the License.txt file for licencing details. + */ + +/* + * This library provide high level routines to create device ICC + * profiles from argyll cgats patch test data. + */ + + +/* Profile algorithm type */ +typedef enum { + prof_default = 0, /* Default for type of device */ + prof_clutLab = 1, /* Lab clut. */ + prof_clutXYZ = 2, /* XYZ clut. */ + prof_gammat = 3, /* XYZ gamut + matrix */ + prof_shamat = 4, /* XYZ shaper + matrix */ + prof_gam1mat = 5, /* XYZ shared TRC gamut + matrix */ + prof_sha1mat = 6, /* XYZ shared TRC shaper + matrix */ + prof_matonly = 7 /* XYZ matrix, linear */ +} prof_atype; + +/* Output or Display device */ +void make_output_icc( + prof_atype ptype, /* Profile output type */ + int mtxtoo, /* NZ if matrix tags should be created for Display XYZ cLUT */ + icmICCVersion iccver, /* ICC profile version to create */ + int verb, /* Vebosity level, 0 = none */ + int iquality, /* A2B table quality, 0..2 */ + int oquality, /* B2A table quality, 0..2 */ + int noiluts, /* nz to supress creation of input (Device) shaper luts */ + int noisluts, /* nz to supress creation of input sub-grid (Device) shaper luts */ + int nooluts, /* nz to supress creation of output (PCS) shaper luts */ + int nocied, /* nz to supress inclusion of .ti3 data in profile */ + int noptop, /* nz to use colorimetic source gamut to make perceptual table */ + int nostos, /* nz to use colorimetic source gamut to make perceptual table */ + int gamdiag, /* Make gamut mapping diagnostic wrl plots */ + int verify, /* nz to print verification */ + int clipprims, /* Clip white, black and primaries */ + icxInk *ink, /* Ink limit/black generation setup */ + char *in_name, /* input .ti3 file name */ + char *file_name, /* output icc name */ + cgats *icg, /* input cgats structure */ + int spec, /* Use spectral data flag */ + icxIllumeType tillum, /* Target/simulated instrument illuminant */ + xspect *cust_tillum, /* Possible custom target/simulated instrument illumination */ + icxIllumeType illum, /* Spectral illuminant */ + xspect *cust_illum, /* Possible custom illumination */ + icxObserverType observ, /* Spectral observer */ + int fwacomp, /* FWA compensation requested */ + double smooth, /* RSPL smoothing factor, -ve if raw */ + double avgdev, /* reading Average Deviation as a proportion of the input range */ + char *ipname, /* input icc profile - enables gamut map, NULL if none */ + char *sgname, /* source image gamut - NULL if none */ + char *absname[3], /* abstract profile name for each table */ + /* may be duplicated, NULL if none */ + int sepsat, /* Create separate Saturation B2A */ + icxViewCond *ivc_p, /* Input Viewing Parameters for CIECAM97s */ + icxViewCond *ovc_p, /* Output Viewing Parameters for CIECAM97s (enables CAM clip) */ + int ivc_e, /* Input Enumerated viewing condition */ + int ovc_e, /* Output Enumerated viewing condition */ + icxGMappingIntent *pgmi,/* Perceptual gamut mapping intent */ + icxGMappingIntent *sgmi,/* Saturation gamut mapping intent */ + profxinf *pi /* Optional Profile creation extra data */ +); + +/* Input device */ +void make_input_icc( + prof_atype ptype, /* Profile algorithm type */ + icmICCVersion iccver, /* ICC profile version to create */ + int verb, + int iquality, /* A2B table quality, 0..3 */ + int oquality, /* B2A table quality, 0..3 */ + int noisluts, /* nz to supress creation of input (Device) shaper luts */ + int noipluts, /* nz to supress creation of input (Device) position luts */ + int nooluts, /* nz to supress creation of output (PCS) shaper luts */ + int nocied, /* nz to supress inclusion of .ti3 data in profile */ + int verify, + int autowpsc, /* nz for Auto scale the WP to prevent clipping above WP patch */ + int clipovwp, /* nz for Clip cLUT values above WP */ + double wpscale, /* >= 0.0 for media white point scale factor */ + int dob2a, /* nz to create a B2A table as well */ + int extrap, /* nz to create extra cLUT interpolation points */ + int clipprims, /* Clip white, black and primaries */ + char *in_name, /* input .ti3 file name */ + char *file_name, /* output icc name */ + cgats *icg, /* input cgats structure */ + int spec, /* Use spectral data flag */ + icxIllumeType illum, /* Spectral illuminant */ + xspect *cust_illum, /* Possible custom illumination */ + icxObserverType observ, /* Spectral observer */ + double smooth, /* RSPL smoothing factor, -ve if raw */ + double avgdev, /* reading Average Deviation as a proportion of the input range */ + profxinf *xpi /* Optional Profile creation extra data */ +); + +#endif /* PROF_H */ -- cgit v1.2.3