digiKam
digikam-lcms.h
Go to the documentation of this file.
1 /* ============================================================
2  *
3  * This file is a part of digiKam project
4  * https://www.digikam.org
5  *
6  * Date : 2012-02-03
7  * Description : LCMS2 wrapper
8  *
9  * Copyright (C) 2012 by Francesco Riosa <francesco+kde at pnpitalia dot it>
10  * Copyright (C) 2012-2022 by Gilles Caulier <caulier dot gilles at gmail dot com>
11  *
12  * This program is free software; you can redistribute it
13  * and/or modify it under the terms of the GNU General
14  * Public License as published by the Free Software Foundation;
15  * either version 2, or (at your option)
16  * any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * ============================================================ */
24 
25 #ifndef DIGIKAM_LCMS_H
26 #define DIGIKAM_LCMS_H
27 
28 // Qt includes
29 
30 #include <QString>
31 
32 // Local includes
33 
34 #include "digikam_export.h"
35 #include "digikam_config.h"
36 
37 #if defined (__MINGW32__) || defined (Q_OS_WIN) // krazy:exclude=cpp
38 # define CMS_IS_WINDOWS_ 1
39 # define CMS_DLL
40 #else
41 # undef CMS_DLL
42 #endif
43 
44 // Turn off the specific compiler warnings with LCMS header.
45 
46 #if defined(Q_CC_CLANG)
47 # pragma clang diagnostic push
48 # pragma clang diagnostic ignored "-Wundef"
49 # pragma clang diagnostic ignored "-Wdeprecated-register"
50 #endif
51 
52 #define CMS_NO_REGISTER_KEYWORD 1
53 
54 #include <lcms2.h>
55 
56 #if defined(Q_CC_CLANG)
57 # pragma clang diagnostic pop
58 #endif
59 
60 #define LCMS_DESC_MAX 512
61 
62 #if !defined FAR
63 # define FAR
64 #endif
65 
66 #define LCMS_ERROR_SHOW 1
67 #define cmsFLAGS_NOTPRECALC 0x0100
68 #define cmsFLAGS_WHITEBLACKCOMPENSATION 0x2000
69 
70 typedef int LCMSBOOL;
71 typedef unsigned char BYTE, *LPBYTE;
72 typedef unsigned short WORD, *LPWORD;
73 typedef unsigned long DWORD, *LPDWORD;
74 typedef void* LPVOID;
75 
77 typedef cmsCIEXYZ FAR* LPcmsCIEXYZ;
78 typedef cmsCIExyY FAR* LPcmsCIExyY;
79 typedef cmsCIELab FAR* LPcmsCIELab;
80 
81 typedef void* cmsHPROFILE;
82 
83 // These have changed from previous definitions
84 
85 typedef cmsCIEXYZTRIPLE MAT3;
86 typedef cmsCIEXYZTRIPLE FAR* LPMAT3;
87 
91 typedef enum
92 {
93  icSigInputClass = 0x73636E72L,
94  icSigDisplayClass = 0x6D6E7472L,
95  icSigOutputClass = 0x70727472L,
96  icSigLinkClass = 0x6C696E6BL,
97  icSigAbstractClass = 0x61627374L,
98  icSigColorSpaceClass = 0x73706163L,
99  icSigNamedColorClass = 0x6e6d636cL,
100  icMaxEnumClass = 0xFFFFFFFFL
102 
103 /*
104  * Color Space Signatures
105  * Note that only icSigXYZData and icSigLabData are valid
106  * Profile Connection Spaces (PCSs)
107  */
108 typedef enum
109 {
110  icSigXYZData = 0x58595A20L,
111  icSigLabData = 0x4C616220L,
112  icSigLuvData = 0x4C757620L,
113  icSigYCbCrData = 0x59436272L,
114  icSigYxyData = 0x59787920L,
115  icSigRgbData = 0x52474220L,
116  icSigGrayData = 0x47524159L,
117  icSigHsvData = 0x48535620L,
118  icSigHlsData = 0x484C5320L,
119  icSigCmykData = 0x434D594BL,
120  icSigCmyData = 0x434D5920L,
121  icSig2colorData = 0x32434C52L,
122  icSig3colorData = 0x33434C52L,
123  icSig4colorData = 0x34434C52L,
124  icSig5colorData = 0x35434C52L,
125  icSig6colorData = 0x36434C52L,
126  icSig7colorData = 0x37434C52L,
127  icSig8colorData = 0x38434C52L,
128  icSig9colorData = 0x39434C52L,
129  icSig10colorData = 0x41434C52L,
130  icSig11colorData = 0x42434C52L,
131  icSig12colorData = 0x43434C52L,
132  icSig13colorData = 0x44434C52L,
133  icSig14colorData = 0x45434C52L,
134  icSig15colorData = 0x46434C52L,
135  icMaxEnumData = 0xFFFFFFFFL
137 
138 
139 //------------------------------------------------------------------------
140 
144 typedef enum
145 {
146  icSigAToB0Tag = 0x41324230L,
147  icSigAToB1Tag = 0x41324231L,
148  icSigAToB2Tag = 0x41324232L,
149  icSigBlueColorantTag = 0x6258595AL,
150  icSigBlueTRCTag = 0x62545243L,
151  icSigBToA0Tag = 0x42324130L,
152  icSigBToA1Tag = 0x42324131L,
153  icSigBToA2Tag = 0x42324132L,
155  icSigCharTargetTag = 0x74617267L,
156  icSigCopyrightTag = 0x63707274L,
157  icSigCrdInfoTag = 0x63726469L,
158  icSigDeviceMfgDescTag = 0x646D6E64L,
159  icSigDeviceModelDescTag = 0x646D6464L,
160  icSigGamutTag = 0x67616D74L,
161  icSigGrayTRCTag = 0x6b545243L,
162  icSigGreenColorantTag = 0x6758595AL,
163  icSigGreenTRCTag = 0x67545243L,
164  icSigLuminanceTag = 0x6C756d69L,
165  icSigMeasurementTag = 0x6D656173L,
166  icSigMediaBlackPointTag = 0x626B7074L,
167  icSigMediaWhitePointTag = 0x77747074L,
168  icSigNamedColorTag = 0x6E636f6CL,
169  icSigNamedColor2Tag = 0x6E636C32L,
170  icSigPreview0Tag = 0x70726530L,
171  icSigPreview1Tag = 0x70726531L,
172  icSigPreview2Tag = 0x70726532L,
175  icSigPs2CRD0Tag = 0x70736430L,
176  icSigPs2CRD1Tag = 0x70736431L,
177  icSigPs2CRD2Tag = 0x70736432L,
178  icSigPs2CRD3Tag = 0x70736433L,
179  icSigPs2CSATag = 0x70733273L,
181  icSigRedColorantTag = 0x7258595AL,
182  icSigRedTRCTag = 0x72545243L,
183  icSigScreeningDescTag = 0x73637264L,
184  icSigScreeningTag = 0x7363726EL,
185  icSigTechnologyTag = 0x74656368L,
186  icSigUcrBgTag = 0x62666420L,
187  icSigViewingCondDescTag = 0x76756564L,
189  icMaxEnumTag = 0xFFFFFFFFL
191 
192 DIGIKAM_EXPORT int dkCmsErrorAction(int nAction);
193 
194 DIGIKAM_EXPORT DWORD dkCmsGetProfileICCversion(cmsHPROFILE hProfile);
195 
196 DIGIKAM_EXPORT void dkCmsSetAlarmCodes(int r, int g, int b);
197 
198 DIGIKAM_EXPORT QString dkCmsTakeProductName(cmsHPROFILE hProfile);
199 
200 DIGIKAM_EXPORT QString dkCmsTakeProductDesc(cmsHPROFILE hProfile);
201 
202 DIGIKAM_EXPORT QString dkCmsTakeProductInfo(cmsHPROFILE hProfile);
203 
204 DIGIKAM_EXPORT QString dkCmsTakeManufacturer(cmsHPROFILE hProfile);
205 
206 DIGIKAM_EXPORT LCMSBOOL dkCmsTakeMediaWhitePoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile);
207 
208 DIGIKAM_EXPORT QString dkCmsTakeModel(cmsHPROFILE hProfile);
209 
210 DIGIKAM_EXPORT QString dkCmsTakeCopyright(cmsHPROFILE hProfile);
211 
212 DIGIKAM_EXPORT DWORD dkCmsTakeHeaderFlags(cmsHPROFILE hProfile);
213 
214 DIGIKAM_EXPORT const BYTE* dkCmsTakeProfileID(cmsHPROFILE hProfile);
215 
216 DIGIKAM_EXPORT LCMSBOOL dkCmsIsTag(cmsHPROFILE hProfile, icTagSignature sig);
217 
218 DIGIKAM_EXPORT int dkCmsTakeRenderingIntent(cmsHPROFILE hProfile);
219 
220 DIGIKAM_EXPORT LCMSBOOL dkCmsAdaptMatrixFromD50(LPMAT3 r, LPcmsCIExyY DestWhitePt);
221 
222 DIGIKAM_EXPORT LCMSBOOL dkCmsReadICCMatrixRGB2XYZ(LPMAT3 r, cmsHPROFILE hProfile);
223 
224 DIGIKAM_EXPORT cmsHPROFILE dkCmsOpenProfileFromMem(LPVOID MemPtr, DWORD dwSize);
225 
227 
228 DIGIKAM_EXPORT LCMSBOOL dkCmsCloseProfile(cmsHPROFILE hProfile);
229 
230 DIGIKAM_EXPORT cmsHTRANSFORM dkCmsCreateProofingTransform(cmsHPROFILE Input,
231  DWORD InputFormat,
232  cmsHPROFILE Output,
233  DWORD OutputFormat,
234  cmsHPROFILE Proofing,
235  int Intent,
236  int ProofingIntent,
237  DWORD dwFlags);
238 
239 DIGIKAM_EXPORT cmsHTRANSFORM dkCmsCreateTransform(cmsHPROFILE Input,
240  DWORD InputFormat,
241  cmsHPROFILE Output,
242  DWORD OutputFormat,
243  int Intent,
244  DWORD dwFlags);
245 
246 DIGIKAM_EXPORT cmsHPROFILE dkCmsCreateXYZProfile();
247 
248 DIGIKAM_EXPORT cmsHPROFILE dkCmsCreate_sRGBProfile();
249 
250 DIGIKAM_EXPORT void dkCmsDeleteTransform(cmsHTRANSFORM hTransform);
251 
252 DIGIKAM_EXPORT double dkCmsDeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2);
253 
254 DIGIKAM_EXPORT void dkCmsDoTransform(cmsHTRANSFORM Transform,
255  LPVOID InputBuffer,
256  LPVOID OutputBuffer,
257  unsigned int Size);
258 
259 DIGIKAM_EXPORT void dkCmsFloat2XYZEncoded(WORD XYZ[3], const cmsCIEXYZ* const fXYZ);
260 
261 DIGIKAM_EXPORT icColorSpaceSignature dkCmsGetColorSpace(cmsHPROFILE hProfile);
262 
263 DIGIKAM_EXPORT icColorSpaceSignature dkCmsGetPCS(cmsHPROFILE hProfile);
264 
265 DIGIKAM_EXPORT LCMSBOOL dkCmsIsTag(cmsHPROFILE hProfile, icTagSignature sig);
266 
267 DIGIKAM_EXPORT cmsHPROFILE dkCmsOpenProfileFromFile(const char* const ICCProfile, const char* const sAccess);
268 
269 DIGIKAM_EXPORT void dkCmsXYZ2xyY(LPcmsCIExyY Dest, const cmsCIEXYZ* const Source);
270 
271 #endif // DIGIKAM_LCMS_H
cmsCIEXYZ FAR * LPcmsCIEXYZ
Colorspaces.
Definition: digikam-lcms.h:77
DIGIKAM_EXPORT QString dkCmsTakeCopyright(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:469
DIGIKAM_EXPORT QString dkCmsTakeModel(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:453
DIGIKAM_EXPORT int dkCmsTakeRenderingIntent(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:498
DIGIKAM_EXPORT QString dkCmsTakeManufacturer(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:430
unsigned short WORD
Definition: digikam-lcms.h:72
icProfileClassSignature
Definition: digikam-lcms.h:92
@ icSigAbstractClass
'abst'
Definition: digikam-lcms.h:97
@ icSigDisplayClass
'mntr'
Definition: digikam-lcms.h:94
@ icSigOutputClass
'prtr'
Definition: digikam-lcms.h:95
@ icSigInputClass
'scnr'
Definition: digikam-lcms.h:93
@ icSigColorSpaceClass
'spac'
Definition: digikam-lcms.h:98
@ icMaxEnumClass
Definition: digikam-lcms.h:100
@ icSigNamedColorClass
'nmcl'
Definition: digikam-lcms.h:99
@ icSigLinkClass
'link'
Definition: digikam-lcms.h:96
cmsCIEXYZTRIPLE FAR * LPMAT3
Definition: digikam-lcms.h:86
DIGIKAM_EXPORT void dkCmsDeleteTransform(cmsHTRANSFORM hTransform)
Definition: digikam-lcms.cpp:665
DIGIKAM_EXPORT LCMSBOOL dkCmsReadICCMatrixRGB2XYZ(LPMAT3 r, cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:589
DIGIKAM_EXPORT int dkCmsErrorAction(int nAction)
Definition: digikam-lcms.cpp:279
unsigned char * LPBYTE
Definition: digikam-lcms.h:71
unsigned char BYTE
Definition: digikam-lcms.h:71
DIGIKAM_EXPORT QString dkCmsTakeProductDesc(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:353
DIGIKAM_EXPORT DWORD dkCmsGetProfileICCversion(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:288
DIGIKAM_EXPORT LCMSBOOL dkCmsCloseProfile(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:616
DIGIKAM_EXPORT QString dkCmsTakeProductName(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:302
icColorSpaceSignature
Definition: digikam-lcms.h:109
@ icSig14colorData
'ECLR'
Definition: digikam-lcms.h:133
@ icSigLabData
'Lab '
Definition: digikam-lcms.h:111
@ icSig2colorData
'2CLR'
Definition: digikam-lcms.h:121
@ icSigLuvData
'Luv '
Definition: digikam-lcms.h:112
@ icSig8colorData
'8CLR'
Definition: digikam-lcms.h:127
@ icSig10colorData
'ACLR'
Definition: digikam-lcms.h:129
@ icMaxEnumData
Definition: digikam-lcms.h:135
@ icSig7colorData
'7CLR'
Definition: digikam-lcms.h:126
@ icSig9colorData
'9CLR'
Definition: digikam-lcms.h:128
@ icSigXYZData
'XYZ '
Definition: digikam-lcms.h:110
@ icSig13colorData
'DCLR'
Definition: digikam-lcms.h:132
@ icSig6colorData
'6CLR'
Definition: digikam-lcms.h:125
@ icSigCmykData
'CMYK'
Definition: digikam-lcms.h:119
@ icSigRgbData
'RGB '
Definition: digikam-lcms.h:115
@ icSigHlsData
'HLS '
Definition: digikam-lcms.h:118
@ icSig4colorData
'4CLR'
Definition: digikam-lcms.h:123
@ icSigYCbCrData
'YCbr'
Definition: digikam-lcms.h:113
@ icSig12colorData
'CCLR'
Definition: digikam-lcms.h:131
@ icSig11colorData
'BCLR'
Definition: digikam-lcms.h:130
@ icSigCmyData
'CMY '
Definition: digikam-lcms.h:120
@ icSigGrayData
'GRAY'
Definition: digikam-lcms.h:116
@ icSig15colorData
'FCLR'
Definition: digikam-lcms.h:134
@ icSig3colorData
'3CLR'
Definition: digikam-lcms.h:122
@ icSigHsvData
'HSV '
Definition: digikam-lcms.h:117
@ icSigYxyData
'Yxy '
Definition: digikam-lcms.h:114
@ icSig5colorData
'5CLR'
Definition: digikam-lcms.h:124
DIGIKAM_EXPORT void dkCmsFloat2XYZEncoded(WORD XYZ[3], const cmsCIEXYZ *const fXYZ)
Definition: digikam-lcms.cpp:686
DIGIKAM_EXPORT cmsHPROFILE dkCmsCreate_sRGBProfile()
Definition: digikam-lcms.cpp:660
DIGIKAM_EXPORT double dkCmsDeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2)
Definition: digikam-lcms.cpp:670
DIGIKAM_EXPORT cmsHPROFILE dkCmsCreateXYZProfile()
Definition: digikam-lcms.cpp:655
cmsCIELab FAR * LPcmsCIELab
Definition: digikam-lcms.h:79
DIGIKAM_EXPORT void dkCmsDoTransform(cmsHTRANSFORM Transform, LPVOID InputBuffer, LPVOID OutputBuffer, unsigned int Size)
Definition: digikam-lcms.cpp:675
DIGIKAM_EXPORT QString dkCmsTakeProductInfo(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:375
DIGIKAM_EXPORT DWORD dkCmsTakeHeaderFlags(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:485
DIGIKAM_EXPORT icProfileClassSignature dkCmsGetDeviceClass(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:611
DIGIKAM_EXPORT void dkCmsXYZ2xyY(LPcmsCIExyY Dest, const cmsCIEXYZ *const Source)
Definition: digikam-lcms.cpp:711
void * LPVOID
Definition: digikam-lcms.h:74
DIGIKAM_EXPORT LCMSBOOL dkCmsTakeMediaWhitePoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:439
DIGIKAM_EXPORT void dkCmsSetAlarmCodes(int r, int g, int b)
Definition: digikam-lcms.cpp:293
DIGIKAM_EXPORT cmsHPROFILE dkCmsOpenProfileFromMem(LPVOID MemPtr, DWORD dwSize)
Definition: digikam-lcms.cpp:606
void * cmsHPROFILE
Opaque typedefs to hide internals.
Definition: digikam-lcms.h:81
DIGIKAM_EXPORT const BYTE * dkCmsTakeProfileID(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:490
unsigned long * LPDWORD
Definition: digikam-lcms.h:73
icTagSignature
Definition: digikam-lcms.h:145
@ icSigGrayTRCTag
'kTRC'
Definition: digikam-lcms.h:161
@ icSigBToA2Tag
'B2A2'
Definition: digikam-lcms.h:153
@ icSigDeviceMfgDescTag
'dmnd'
Definition: digikam-lcms.h:158
@ icSigViewingConditionsTag
'view'
Definition: digikam-lcms.h:188
@ icSigGreenTRCTag
'gTRC'
Definition: digikam-lcms.h:163
@ icSigMeasurementTag
'meas'
Definition: digikam-lcms.h:165
@ icSigCrdInfoTag
'crdi'
Definition: digikam-lcms.h:157
@ icSigPs2CSATag
'ps2s'
Definition: digikam-lcms.h:179
@ icSigPreview1Tag
'pre1'
Definition: digikam-lcms.h:171
@ icSigPs2CRD0Tag
'psd0'
Definition: digikam-lcms.h:175
@ icSigPs2RenderingIntentTag
'ps2i'
Definition: digikam-lcms.h:180
@ icSigScreeningDescTag
'scrd'
Definition: digikam-lcms.h:183
@ icSigAToB0Tag
'A2B0'
Definition: digikam-lcms.h:146
@ icSigDeviceModelDescTag
'dmdd'
Definition: digikam-lcms.h:159
@ icSigScreeningTag
'scrn'
Definition: digikam-lcms.h:184
@ icSigBToA1Tag
'B2A1'
Definition: digikam-lcms.h:152
@ icSigAToB2Tag
'A2B2'
Definition: digikam-lcms.h:148
@ icSigProfileSequenceDescTag
'pseq'
Definition: digikam-lcms.h:174
@ icSigBToA0Tag
'B2A0'
Definition: digikam-lcms.h:151
@ icSigRedTRCTag
'rTRC'
Definition: digikam-lcms.h:182
@ icSigPs2CRD1Tag
'psd1'
Definition: digikam-lcms.h:176
@ icSigBlueTRCTag
'bTRC'
Definition: digikam-lcms.h:150
@ icSigProfileDescriptionTag
'desc'
Definition: digikam-lcms.h:173
@ icSigPs2CRD2Tag
'psd2'
Definition: digikam-lcms.h:177
@ icSigRedColorantTag
'rXYZ'
Definition: digikam-lcms.h:181
@ icSigMediaBlackPointTag
'bkpt'
Definition: digikam-lcms.h:166
@ icSigCharTargetTag
'targ'
Definition: digikam-lcms.h:155
@ icSigCopyrightTag
'cprt'
Definition: digikam-lcms.h:156
@ icSigMediaWhitePointTag
'wtpt'
Definition: digikam-lcms.h:167
@ icSigViewingCondDescTag
'vued'
Definition: digikam-lcms.h:187
@ icSigAToB1Tag
'A2B1'
Definition: digikam-lcms.h:147
@ icSigPs2CRD3Tag
'psd3'
Definition: digikam-lcms.h:178
@ icSigCalibrationDateTimeTag
'calt'
Definition: digikam-lcms.h:154
@ icSigPreview0Tag
'pre0'
Definition: digikam-lcms.h:170
@ icSigUcrBgTag
'bfd '
Definition: digikam-lcms.h:186
@ icSigNamedColor2Tag
'ncl2'
Definition: digikam-lcms.h:169
@ icSigGreenColorantTag
'gXYZ'
Definition: digikam-lcms.h:162
@ icSigNamedColorTag
'ncol' NOTE: OBSOLETE, use ncl2
Definition: digikam-lcms.h:168
@ icSigLuminanceTag
'lumi'
Definition: digikam-lcms.h:164
@ icSigGamutTag
'gamt'
Definition: digikam-lcms.h:160
@ icSigTechnologyTag
'tech'
Definition: digikam-lcms.h:185
@ icMaxEnumTag
Definition: digikam-lcms.h:189
@ icSigPreview2Tag
'pre2'
Definition: digikam-lcms.h:172
@ icSigBlueColorantTag
'bXYZ'
Definition: digikam-lcms.h:149
unsigned long DWORD
Definition: digikam-lcms.h:73
DIGIKAM_EXPORT cmsHPROFILE dkCmsOpenProfileFromFile(const char *const ICCProfile, const char *const sAccess)
Definition: digikam-lcms.cpp:706
DIGIKAM_EXPORT icColorSpaceSignature dkCmsGetPCS(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:696
DIGIKAM_EXPORT cmsHTRANSFORM dkCmsCreateProofingTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, cmsHPROFILE Proofing, int Intent, int ProofingIntent, DWORD dwFlags)
Definition: digikam-lcms.cpp:621
DIGIKAM_EXPORT LCMSBOOL dkCmsIsTag(cmsHPROFILE hProfile, icTagSignature sig)
Definition: digikam-lcms.cpp:701
DIGIKAM_EXPORT icColorSpaceSignature dkCmsGetColorSpace(cmsHPROFILE hProfile)
Definition: digikam-lcms.cpp:691
DIGIKAM_EXPORT cmsHTRANSFORM dkCmsCreateTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, int Intent, DWORD dwFlags)
Definition: digikam-lcms.cpp:640
int LCMSBOOL
Definition: digikam-lcms.h:70
#define FAR
Definition: digikam-lcms.h:63
cmsCIExyY FAR * LPcmsCIExyY
Definition: digikam-lcms.h:78
unsigned short * LPWORD
Definition: digikam-lcms.h:72
cmsCIEXYZTRIPLE MAT3
Definition: digikam-lcms.h:85
DIGIKAM_EXPORT LCMSBOOL dkCmsAdaptMatrixFromD50(LPMAT3 r, LPcmsCIExyY DestWhitePt)
Definition: digikam-lcms.cpp:509