From 4e116dfbcbe8a3b7a72db4c698b930376540ed6b Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 28 Aug 2021 23:38:16 +0200 Subject: m libcolour.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libcolour.7 | 404 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 404 insertions(+) create mode 100644 libcolour.7 (limited to 'libcolour.7') diff --git a/libcolour.7 b/libcolour.7 new file mode 100644 index 0000000..acc0000 --- /dev/null +++ b/libcolour.7 @@ -0,0 +1,404 @@ +.TH LIBCOLOUR 7 libcolour +.SH NAME +libcolour - A C colour space library +.SH DESCRIPTION +.B libcolour +is C library for colour space conversions. +.B libcolour +provides conversion between a large number of colour +spaces, including many different RGB colour spaces. +It also supports encode and non-encoded representations. +libcolour futhermore provides access to custom RGB +colour spaces. +.P +To use libcolour, include the header file +.B +and link with +.B -lcolour +.BR -lm . +.SH COLOUR MODELS +.B libcolour +supports a number of colour models. A colour model +is specified with a value of +.nf + + \fBtypedef enum libcolour_model libcolour_model_t;\fP + +.fi +The colour models can listed using the macros +.nf + + \fBLIBCOLOUR_LIST_MODELS\fP(\fIMACRO\fP, \fITYPE_AFFIX\fP) + +.fi +or +.nf + + \fBLIBCOLOUR_LIST_MODELS_N\fP(\fIMACRO\fP, \fITYPE_AFFIX\fP, ...) + +.fi +where +.I MACRO +is the macro that shall be expanded, and +.I TYPE_AFFIX +shall be +.BR f , +.BR lf , +or +.BR llf +for +.BR float -typed, +.BR double -typed, +and +.BR long\ double -typed +colour module stuctures, respectively. +.B LIBCOLOUR_LIST_MODELS +expands +.I MACRO +with three parameters: +.B enum libcolour_model +value of the colour model, +.BR typedef -name +of +.B struct +used to store colours of the colour model, +and the name of the member in +.BR union\ libcolour_colour_f , +.BR union\ libcolour_colour_lf , +and +.B union libcolour_colour_llf +that is used to store a colour with the colour model. +.B LIBCOLOUR_LIST_MODELS_N +is identical to +.B LIBCOLOUR_LIST_MODELS +except allows the programmer to specify additional +parameters to pass +.I MACRO +when it is expanded. +.P +There there are three +.BR struct s +defined for each colour model, the first member +in each +.B struct +is +.nf + + \fBenum libcolour_model model;\fP + +.fi +The three +.BR struct s +for each colour model are for different data types: +.BR float , +.BR double , +and +.BR long\ double . +For example, for sRGB, the follow +.BR struct s +are defined: +.nf + + \fBtypedef struct libcolour_srgb_f libcolour_srgb_f_t;\fP + \fBtypedef struct libcolour_srgb_lf libcolour_srgb_lf_t;\fP + \fBtypedef struct libcolour_srgb_llf libcolour_srgb_llf_t;\fP + +.fi +for +.BR float , +.BR double , +and +.BR long\ double , +respectively. Similarly, +.nf + + \fBtypedef union libcolour_colour_f libcolour_colour_f_t;\fP + \fBtypedef union libcolour_colour_lf libcolour_colour_lf_t;\fP + \fBtypedef union libcolour_colour_llf libcolour_colour_llf_t;\fP + +.fi +are used for +.BR float , +.BR double , +and +.BR long\ double , +respectively, and all have the member +.nf + + \fBenum libcolour_model model;\fP + +.fi +The +.BR struct s +are +.I not +padded to be of the same size. +.P +.B +defines +.BR struct s +the following for colour models: +.P +.TP +Generic RGB +See +.BR LIBCOLOUR_RGB (7). +.TP +Standard RGB +See +.BR LIBCOLOUR_SRGB (7). +.TP +CIE xyY +See +.BR LIBCOLOUR_CIEXYY (7). +.TP +CIE 1931 XYZ +See +.BR LIBCOLOUR_CIEXYZ (7). +.TP +CIE L*a*b* +See +.BR LIBCOLOUR_CIELAB (7). +.TP +CIE 1976 (L*, u*, v*) +See +.BR LIBCOLOUR_CIELUV (7). +.TP +CIE LChuv (also known as CIE HLCuv) +See +.BR LIBCOLOUR_CIELCHUV (7). +.TP +YIQ +See +.BR LIBCOLOUR_YIQ (7). +.TP +YDbDr +See +.BR LIBCOLOUR_YDBDR (7). +.TP +YUV +See +.BR LIBCOLOUR_YUV (7). +.TP +YPBPR +See +.BR LIBCOLOUR_YPBPR (7). +.TP +YCgCo +See +.BR LIBCOLOUR_YCGCO (7). +.TP +CIE 1960 UCS +See +.BR LIBCOLOUR_CIE1960UCS (7). +.TP +CIE 1964 (U*, V*, W*) +See +.BR LIBCOLOUR_CIEUVW (7). +.TP +YES +See +.BR LIBCOLOUR_YES (7). +.SH ILLUMINANTS +.B libcolour +provides a number of initialiser macros for standard +illuminants. The following macros expand to a +.B libcolour_ciexyy_f_t +with the standard 2 degrees observer value in CIE +xyY, each have a supplementary 10 degrees observer +counterpart using suffix +.BR _10DEG_OBS , +both with the Y value set to 1. Additionally, each +macro, including the +.B _10DEG_OBS +variants, have a variant that uses the +.B _LF +affix that expands to a +.B libcolour_ciexyy_lf_t +and a variant that uses the +.B _LLF +affix that expands to a +.B libcolour_ciexyy_llf_t +in addition to the listed variants that uses +the +.B _F +affix. +.P +.TP +.B LIBCOLOUR_ILLUMINANT_A_F +.nf +CIE Standard Illuminant A. +Incandescent/Tungsten. +2855.54 Kelvin (2848 Kelvin in old definition of 1 Kelvin). +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_B_F +.nf +CIE Standard Illuminant B. +Direct sunlight at noon (obsolete). +4874 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_C_F +.nf +CIE Standard Illuminant C. +Average/north sky daylight (obsolete). +6774 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_D50_F +.nf +CIE Standard Illuminant D50. +Horizon Light. +5002.78 Kelvin (5000 Kelvin in old definition of 1 Kelvin). +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_D55_F +.nf +CIE Standard Illuminant D55. +Mid-morning/mid-afternoon daylight. +5503.06 Kelvin (5500 Kelvin in old definition of 1 Kelvin). +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_D65_F +.nf +CIE Standard Illuminant D65. +Noon daylight. +6503.62 Kelvin (6500 Kelvin in old definition of 1 Kelvin). +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_D75_F +.nf +CIE Standard Illuminant D75. +North sky daylight. +7504.17 Kelvin (7500 Kelvin in old definition of 1 Kelvin). +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_E_F +.nf +CIE Standard Illuminant E. +Equal energy. +5454 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F1_F +.nf +CIE Standard Illuminant F1. +Daylight fluorescent. +6430 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F2_F +.nf +CIE Standard Illuminant F2. +Cool white fluorescent. +4230 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F3_F +.nf +CIE Standard Illuminant F3. +White fluorescent. +3450 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F4_F +.nf +CIE Standard Illuminant F4. +Warm white fluorescent. +2940 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F5_F +.nf +CIE Standard Illuminant F5. +Daylight fluorescent. +6350 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F6_F +.nf +CIE Standard Illuminant F6. +Lite white fluorescent. +4150 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F7_F +.nf +CIE Standard Illuminant F7. +D65 simulator, daylight simulator. +6500 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F8_F +.nf +CIE Standard Illuminant F8. +D50 simulator, Sylvania F40 Design 50. +5000 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F9_F +.nf +CIE Standard Illuminant F9. +Cool white deluxe fluorescent. +4150 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F10_F +.nf +CIE Standard Illuminant F10. +Philips TL85, Ultralume 50. +5000 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F11_F +.nf +CIE Standard Illuminant F11. +Philips TL84, Ultralume 40. +4000 Kelvin. +.fi +.TP +.B LIBCOLOUR_ILLUMINANT_F12_F +.nf +CIE Standard Illuminant F12. +Philips TL83, Ultralume 30. +3000 Kelvin. +.fi +.SH FUNCTIONS +.TP +.BR libcolour_convert (3) +Colour space and colour model conversion. +.TP +.BR libcolour_convert_en_masse (3) +Colour space and colour model conversion +for many colours. +.TP +.BR libcolour_srgb_encode (3) +Apply the sRGB transfer function. +.TP +.BR libcolour_srgb_decode (3) +Unapply the sRGB transfer function. +.TP +.BR libcolour_delta_e (3) +Calculate the delta E*_ab distance. +.TP +.BR libcolour_proper (3) +Sets any member or submember that may +be incorrectly set. +.TP +.BR libcolour_get_rgb_colour_space (3) +Selects RGB colour space. +.TP +.BR libcolour_marshal (3) +Marshal a colour record. +.TP +.BR libcolour_unmarshal (3) +Unmarshal a colour record. +.SH NOTES +All +.B enum +values have a macro with the same name defined +which can be used to test the existance of value. +.SH AUTHORS +Mattias Andrée +.RI < maandree@kth.se > -- cgit v1.2.3-70-g09d2