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 --- .gitignore | 1 - LICENSE | 2 +- Makefile | 8 +- libcolour.7 | 404 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ libcolour.7.in | 405 --------------------------------------------------------- 5 files changed, 407 insertions(+), 413 deletions(-) create mode 100644 libcolour.7 delete mode 100644 libcolour.7.in diff --git a/.gitignore b/.gitignore index 0d8d92a..a4211ec 100644 --- a/.gitignore +++ b/.gitignore @@ -12,5 +12,4 @@ *.out /__pycache__/ /test -/libcolour.7 /conversion-matrices.h diff --git a/LICENSE b/LICENSE index 383201c..8e3ba8a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ ISC License -© 2016, 2017 Mattias Andrée +© 2016, 2017, 2021 Mattias Andrée Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above diff --git a/Makefile b/Makefile index 9b1b6d9..8cef49a 100644 --- a/Makefile +++ b/Makefile @@ -79,7 +79,7 @@ MAN3_SYMLINKS =\ libcolour_convert_en_masse_llf.3 -all: libcolour.a libcolour.so.$(SO_VERSION) libcolour.7 test +all: libcolour.a libcolour.so.$(SO_VERSION) test conversion-matrices.h: matrices.py @@ -122,11 +122,7 @@ test: test.o libcolour.a $(CC) -o $@ $^ $(LDFLAGS) -libcolour.7: libcolour.7.in - sed 's:/usr/local:$(PREFIX):g' < libcolour.7.in > libcolour.7 - - -install: libcolour.a libcolour.so.$(SO_VERSION) libcolour.7 +install: libcolour.a libcolour.so.$(SO_VERSION) mkdir -p -- "$(DESTDIR)$(PREFIX)/include" cp -- libcolour.h "$(DESTDIR)$(PREFIX)/include/libcolour.h" chmod -- 644 "$(DESTDIR)$(PREFIX)/include/libcolour.h" 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 > diff --git a/libcolour.7.in b/libcolour.7.in deleted file mode 100644 index ee8c2df..0000000 --- a/libcolour.7.in +++ /dev/null @@ -1,405 +0,0 @@ -.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 /usr/local/lib/libcolour.a -lm -or -.BR -lcolour . -.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