12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159 |
- //
- // Little cms DELPHI wrapper
- //---------------------------------------------------------------------------------
- //
- // Little Color Management System
- // Copyright (c) 1998-2021 Marti Maria Saguer
- //
- // Permission is hereby granted, free of charge, to any person obtaining
- // a copy of this software and associated documentation files (the "Software"),
- // to deal in the Software without restriction, including without limitation
- // the rights to use, copy, modify, merge, publish, distribute, sublicense,
- // and/or sell copies of the Software, and to permit persons to whom the Software
- // is furnished to do so, subject to the following conditions:
- //
- // The above copyright notice and this permission notice shall be included in
- // all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- // THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- //
- //---------------------------------------------------------------------------------
- //
- // Version 2.13 - unmantained
- //
- UNIT lcms2dll;
- {$IFDEF FPC}
- {$MODE Delphi}
- {$ENDIF}
- INTERFACE
- {$IFNDEF MSWINDOWS}
- USES LCLType, types;
- Type PWChar = PWideChar;
- {$ELSE}
- USES Windows;
- {$ENDIF}
- CONST
- LCMS2_SO = {$IFDEF DARWIN} 'liblcms2.13.dylib'; {$ELSE} 'lcms2.dll'; {$ENDIF}
- TYPE
- Uint8 = Byte;
- Int8 = Shortint;
- UInt16 = Word;
- Int16 = Smallint;
- UInt32 = LongWord;
- Int32 = Longint;
- TYPE
- cmsUInt8Number = Uint8;
- cmsInt8Number = Int8;
- cmsUInt16Number = UInt16;
- cmsInt16Number = Int16;
- cmsUInt32Number = UInt32;
- cmsInt32Number = Int32;
- cmsInt64Number = Int64;
- cmsUInt64Number = UInt64;
- cmsFloat32Number = Single;
- cmsFloat64Number = Double;
- LPcmsUInt8Number = ^cmsUInt8Number;
- LPcmsInt8Number = ^cmsInt8Number;
- LPcmsUInt16Number = ^cmsUInt16Number;
- LPcmsInt16Number = ^cmsInt16Number;
- LPcmsUInt32Number = ^cmsUInt32Number;
- LPcmsInt32Number = ^cmsInt32Number;
- LPcmsInt64Number = ^cmsInt64Number;
- LPcmsUInt64Number = ^cmsUInt64Number;
- LPcmsFloat32Number = ^cmsFloat32Number;
- LPcmsFloat64Number = ^cmsFloat64Number;
- // Derivative types
- cmsSignature = cmsUInt32Number;
- cmsU8Fixed8Number = cmsUInt16Number;
- cmsS15Fixed16Number = cmsInt32Number;
- cmsU16Fixed16Number = cmsUInt32Number;
- // Boolean type, which will be using the native integer
- cmsBool = Boolean;
- CONST
- // Some common definitions
- cmsMAX_PATH = 256;
- // D50 XYZ normalized to Y=1.0
- cmsD50X = 0.9642;
- cmsD50Y = 1.0;
- cmsD50Z = 0.8249;
- // V4 perceptual black
- cmsPERCEPTUAL_BLACK_X = 0.00336;
- cmsPERCEPTUAL_BLACK_Y = 0.0034731;
- cmsPERCEPTUAL_BLACK_Z = 0.00287;
- // Definitions in ICC spec
- cmsMagicNumber = $61637370; // 'acsp'
- lcmsSignature = $6c636d73; // 'lcms'
- TYPE
- // Base ICC type definitions
- cmsTagTypeSignature = (
- cmsSigChromaticityType = $6368726D, // 'chrm'
- cmsSigColorantOrderType = $636C726F, // 'clro'
- cmsSigColorantTableType = $636C7274, // 'clrt'
- cmsSigCrdInfoType = $63726469, // 'crdi'
- cmsSigCurveType = $63757276, // 'curv'
- cmsSigDataType = $64617461, // 'data'
- cmsSigDictType = $64696374, // 'dict'
- cmsSigDateTimeType = $6474696D, // 'dtim'
- cmsSigDeviceSettingsType = $64657673, // 'devs'
- cmsSigLut16Type = $6d667432, // 'mft2'
- cmsSigLut8Type = $6d667431, // 'mft1'
- cmsSigLutAtoBType = $6d414220, // 'mAB '
- cmsSigLutBtoAType = $6d424120, // 'mBA '
- cmsSigMeasurementType = $6D656173, // 'meas'
- cmsSigMultiLocalizedUnicodeType = $6D6C7563, // 'mluc'
- cmsSigMultiProcessElementType = $6D706574, // 'mpet'
- cmsSigNamedColorType = $6E636f6C, // 'ncol' -- DEPRECATED!
- cmsSigNamedColor2Type = $6E636C32, // 'ncl2'
- cmsSigParametricCurveType = $70617261, // 'para'
- cmsSigProfileSequenceDescType = $70736571, // 'pseq'
- cmsSigProfileSequenceIdType = $70736964, // 'psid'
- cmsSigResponseCurveSet16Type = $72637332, // 'rcs2'
- cmsSigS15Fixed16ArrayType = $73663332, // 'sf32'
- cmsSigScreeningType = $7363726E, // 'scrn'
- cmsSigSignatureType = $73696720, // 'sig '
- cmsSigTextType = $74657874, // 'text'
- cmsSigTextDescriptionType = $64657363, // 'desc'
- cmsSigU16Fixed16ArrayType = $75663332, // 'uf32'
- cmsSigUcrBgType = $62666420, // 'bfd '
- cmsSigUInt16ArrayType = $75693136, // 'ui16'
- cmsSigUInt32ArrayType = $75693332, // 'ui32'
- cmsSigUInt64ArrayType = $75693634, // 'ui64'
- cmsSigUInt8ArrayType = $75693038, // 'ui08'
- cmsSigViewingConditionsType = $76696577, // 'view'
- cmsSigXYZType = $58595A20, // 'XYZ '
- cmsSigVcgtType = $76636774 // 'vcgt'
- );
- // Base ICC tag definitions
- cmsTagSignature = (
- cmsSigAToB0Tag = $41324230, // 'A2B0'
- cmsSigAToB1Tag = $41324231, // 'A2B1'
- cmsSigAToB2Tag = $41324232, // 'A2B2'
- cmsSigBlueColorantTag = $6258595A, // 'bXYZ'
- cmsSigBlueMatrixColumnTag = $6258595A, // 'bXYZ'
- cmsSigBlueTRCTag = $62545243, // 'bTRC'
- cmsSigBToA0Tag = $42324130, // 'B2A0'
- cmsSigBToA1Tag = $42324131, // 'B2A1'
- cmsSigBToA2Tag = $42324132, // 'B2A2'
- cmsSigCalibrationDateTimeTag = $63616C74, // 'calt'
- cmsSigCharTargetTag = $74617267, // 'targ'
- cmsSigChromaticAdaptationTag = $63686164, // 'chad'
- cmsSigChromaticityTag = $6368726D, // 'chrm'
- cmsSigColorantOrderTag = $636C726F, // 'clro'
- cmsSigColorantTableTag = $636C7274, // 'clrt'
- cmsSigColorantTableOutTag = $636C6F74, // 'clot'
- cmsSigColorimetricIntentImageStateTag = $63696973, // 'ciis'
- cmsSigCopyrightTag = $63707274, // 'cprt'
- cmsSigCrdInfoTag = $63726469, // 'crdi'
- cmsSigDataTag = $64617461, // 'data'
- cmsSigDateTimeTag = $6474696D, // 'dtim'
- cmsSigDeviceMfgDescTag = $646D6E64, // 'dmnd'
- cmsSigDeviceModelDescTag = $646D6464, // 'dmdd'
- cmsSigDeviceSettingsTag = $64657673, // 'devs'
- cmsSigDToB0Tag = $44324230, // 'D2B0'
- cmsSigDToB1Tag = $44324231, // 'D2B1'
- cmsSigDToB2Tag = $44324232, // 'D2B2'
- cmsSigDToB3Tag = $44324233, // 'D2B3'
- cmsSigBToD0Tag = $42324430, // 'B2D0'
- cmsSigBToD1Tag = $42324431, // 'B2D1'
- cmsSigBToD2Tag = $42324432, // 'B2D2'
- cmsSigBToD3Tag = $42324433, // 'B2D3'
- cmsSigGamutTag = $67616D74, // 'gamt'
- cmsSigGrayTRCTag = $6b545243, // 'kTRC'
- cmsSigGreenColorantTag = $6758595A, // 'gXYZ'
- cmsSigGreenMatrixColumnTag = $6758595A, // 'gXYZ'
- cmsSigGreenTRCTag = $67545243, // 'gTRC'
- cmsSigLuminanceTag = $6C756d69, // 'lumi'
- cmsSigMeasurementTag = $6D656173, // 'meas'
- cmsSigMediaBlackPointTag = $626B7074, // 'bkpt'
- cmsSigMediaWhitePointTag = $77747074, // 'wtpt'
- cmsSigNamedColorTag = $6E636f6C, // 'ncol' // Deprecated by the ICC
- cmsSigNamedColor2Tag = $6E636C32, // 'ncl2'
- cmsSigOutputResponseTag = $72657370, // 'resp'
- cmsSigPerceptualRenderingIntentGamutTag = $72696730, // 'rig0'
- cmsSigPreview0Tag = $70726530, // 'pre0'
- cmsSigPreview1Tag = $70726531, // 'pre1'
- cmsSigPreview2Tag = $70726532, // 'pre2'
- cmsSigProfileDescriptionTag = $64657363, // 'desc'
- cmsSigProfileSequenceDescTag = $70736571, // 'pseq'
- cmsSigProfileSequenceIdTag = $70736964, // 'psid'
- cmsSigPs2CRD0Tag = $70736430, // 'psd0'
- cmsSigPs2CRD1Tag = $70736431, // 'psd1'
- cmsSigPs2CRD2Tag = $70736432, // 'psd2'
- cmsSigPs2CRD3Tag = $70736433, // 'psd3'
- cmsSigPs2CSATag = $70733273, // 'ps2s'
- cmsSigPs2RenderingIntentTag = $70733269, // 'ps2i'
- cmsSigRedColorantTag = $7258595A, // 'rXYZ'
- cmsSigRedMatrixColumnTag = $7258595A, // 'rXYZ'
- cmsSigRedTRCTag = $72545243, // 'rTRC'
- cmsSigSaturationRenderingIntentGamutTag = $72696732, // 'rig2'
- cmsSigScreeningDescTag = $73637264, // 'scrd'
- cmsSigScreeningTag = $7363726E, // 'scrn'
- cmsSigTechnologyTag = $74656368, // 'tech'
- cmsSigUcrBgTag = $62666420, // 'bfd '
- cmsSigViewingCondDescTag = $76756564, // 'vued'
- cmsSigViewingConditionsTag = $76696577, // 'view'
- cmsSigVcgtTag = $76636774, // 'vcgt'
- cmsSigMetaTag = $6D657461 // 'meta'
- );
- // ICC Technology tag
- cmsTechnologySignature = (
- cmsSigDigitalCamera = $6463616D, // 'dcam'
- cmsSigFilmScanner = $6673636E, // 'fscn'
- cmsSigReflectiveScanner = $7273636E, // 'rscn'
- cmsSigInkJetPrinter = $696A6574, // 'ijet'
- cmsSigThermalWaxPrinter = $74776178, // 'twax'
- cmsSigElectrophotographicPrinter = $6570686F, // 'epho'
- cmsSigElectrostaticPrinter = $65737461, // 'esta'
- cmsSigDyeSublimationPrinter = $64737562, // 'dsub'
- cmsSigPhotographicPaperPrinter = $7270686F, // 'rpho'
- cmsSigFilmWriter = $6670726E, // 'fprn'
- cmsSigVideoMonitor = $7669646D, // 'vidm'
- cmsSigVideoCamera = $76696463, // 'vidc'
- cmsSigProjectionTelevision = $706A7476, // 'pjtv'
- cmsSigCRTDisplay = $43525420, // 'CRT '
- cmsSigPMDisplay = $504D4420, // 'PMD '
- cmsSigAMDisplay = $414D4420, // 'AMD '
- cmsSigPhotoCD = $4B504344, // 'KPCD'
- cmsSigPhotoImageSetter = $696D6773, // 'imgs'
- cmsSigGravure = $67726176, // 'grav'
- cmsSigOffsetLithography = $6F666673, // 'offs'
- cmsSigSilkscreen = $73696C6B, // 'silk'
- cmsSigFlexography = $666C6578, // 'flex'
- cmsSigMotionPictureFilmScanner = $6D706673, // 'mpfs'
- cmsSigMotionPictureFilmRecorder = $6D706672, // 'mpfr'
- cmsSigDigitalMotionPictureCamera = $646D7063, // 'dmpc'
- cmsSigDigitalCinemaProjector = $64636A70 // 'dcpj'
- );
- // ICC Color spaces
- cmsColorSpaceSignature = (
- cmsSigXYZData = $58595A20, // 'XYZ '
- cmsSigLabData = $4C616220, // 'Lab '
- cmsSigLuvData = $4C757620, // 'Luv '
- cmsSigYCbCrData = $59436272, // 'YCbr'
- cmsSigYxyData = $59787920, // 'Yxy '
- cmsSigRgbData = $52474220, // 'RGB '
- cmsSigGrayData = $47524159, // 'GRAY'
- cmsSigHsvData = $48535620, // 'HSV '
- cmsSigHlsData = $484C5320, // 'HLS '
- cmsSigCmykData = $434D594B, // 'CMYK'
- cmsSigCmyData = $434D5920, // 'CMY '
- cmsSigMCH1Data = $4D434831, // 'MCH1'
- cmsSigMCH2Data = $4D434832, // 'MCH2'
- cmsSigMCH3Data = $4D434833, // 'MCH3'
- cmsSigMCH4Data = $4D434834, // 'MCH4'
- cmsSigMCH5Data = $4D434835, // 'MCH5'
- cmsSigMCH6Data = $4D434836, // 'MCH6'
- cmsSigMCH7Data = $4D434837, // 'MCH7'
- cmsSigMCH8Data = $4D434838, // 'MCH8'
- cmsSigMCH9Data = $4D434839, // 'MCH9'
- cmsSigMCHAData = $4D43483A, // 'MCHA'
- cmsSigMCHBData = $4D43483B, // 'MCHB'
- cmsSigMCHCData = $4D43483C, // 'MCHC'
- cmsSigMCHDData = $4D43483D, // 'MCHD'
- cmsSigMCHEData = $4D43483E, // 'MCHE'
- cmsSigMCHFData = $4D43483F, // 'MCHF'
- cmsSigNamedData = $6e6d636c, // 'nmcl'
- cmsSig1colorData = $31434C52, // '1CLR'
- cmsSig2colorData = $32434C52, // '2CLR'
- cmsSig3colorData = $33434C52, // '3CLR'
- cmsSig4colorData = $34434C52, // '4CLR'
- cmsSig5colorData = $35434C52, // '5CLR'
- cmsSig6colorData = $36434C52, // '6CLR'
- cmsSig7colorData = $37434C52, // '7CLR'
- cmsSig8colorData = $38434C52, // '8CLR'
- cmsSig9colorData = $39434C52, // '9CLR'
- cmsSig10colorData = $41434C52, // 'ACLR'
- cmsSig11colorData = $42434C52, // 'BCLR'
- cmsSig12colorData = $43434C52, // 'CCLR'
- cmsSig13colorData = $44434C52, // 'DCLR'
- cmsSig14colorData = $45434C52, // 'ECLR'
- cmsSig15colorData = $46434C52, // 'FCLR'
- cmsSigLuvKData = $4C75764B // 'LuvK'
- );
- // ICC Profile Class
- cmsProfileClassSignature = (
- cmsSigInputClass = $73636E72, // 'scnr'
- cmsSigDisplayClass = $6D6E7472, // 'mntr'
- cmsSigOutputClass = $70727472, // 'prtr'
- cmsSigLinkClass = $6C696E6B, // 'link'
- cmsSigAbstractClass = $61627374, // 'abst'
- cmsSigColorSpaceClass = $73706163, // 'spac'
- cmsSigNamedColorClass = $6e6d636c // 'nmcl'
- );
- // ICC Platforms
- cmsPlatformSignature = (
- cmsSigMacintosh = $4150504C, // 'APPL'
- cmsSigMicrosoft = $4D534654, // 'MSFT'
- cmsSigSolaris = $53554E57, // 'SUNW'
- cmsSigSGI = $53474920, // 'SGI '
- cmsSigTaligent = $54474E54, // 'TGNT'
- cmsSigUnices = $2A6E6978 // '*nix' // From argyll -- Not official
- );
- CONST
- // Reference gamut
- cmsSigPerceptualReferenceMediumGamut = $70726d67; //'prmg'
- // For cmsSigColorimetricIntentImageStateTag
- cmsSigSceneColorimetryEstimates = $73636F65; //'scoe'
- cmsSigSceneAppearanceEstimates = $73617065; //'sape'
- cmsSigFocalPlaneColorimetryEstimates = $66706365; //'fpce'
- cmsSigReflectionHardcopyOriginalColorimetry = $72686F63; //'rhoc'
- cmsSigReflectionPrintOutputColorimetry = $72706F63; //'rpoc'
- TYPE
- // Multi process elements types
- cmsStageSignature = (
- cmsSigCurveSetElemType = $63767374, //'cvst'
- cmsSigMatrixElemType = $6D617466, //'matf'
- cmsSigCLutElemType = $636C7574, //'clut'
- cmsSigBAcsElemType = $62414353, // 'bACS'
- cmsSigEAcsElemType = $65414353, // 'eACS'
- // Custom from here, not in the ICC Spec
- cmsSigXYZ2LabElemType = $6C327820, // 'l2x '
- cmsSigLab2XYZElemType = $78326C20, // 'x2l '
- cmsSigNamedColorElemType = $6E636C20, // 'ncl '
- cmsSigLabV2toV4 = $32203420, // '2 4 '
- cmsSigLabV4toV2 = $34203220, // '4 2 '
- // Identities
- cmsSigIdentityElemType = $69646E20 // 'idn '
- );
- // Types of CurveElements
- cmsCurveSegSignature = (
- cmsSigFormulaCurveSeg = $70617266, // 'parf'
- cmsSigSampledCurveSeg = $73616D66, // 'samf'
- cmsSigSegmentedCurve = $63757266 // 'curf'
- );
- CONST
- // Used in ResponseCurveType
- cmsSigStatusA = $53746141; //'StaA'
- cmsSigStatusE = $53746145; //'StaE'
- cmsSigStatusI = $53746149; //'StaI'
- cmsSigStatusT = $53746154; //'StaT'
- cmsSigStatusM = $5374614D; //'StaM'
- cmsSigDN = $444E2020; //'DN '
- cmsSigDNP = $444E2050; //'DN P'
- cmsSigDNN = $444E4E20; //'DNN '
- cmsSigDNNP = $444E4E50; //'DNNP'
- // Device attributes, currently defined values correspond to the low 4 bytes
- // of the 8 byte attribute quantity
- cmsReflective = 0;
- cmsTransparency = 1;
- cmsGlossy = 0;
- cmsMatte = 2;
- TYPE
- // Common structures in ICC tags
- cmsICCData = PACKED RECORD
- len : cmsUInt32Number;
- flag : cmsUInt32Number;
- data : Array [0..1] of cmsUInt8Number;
- END;
- // ICC date time
- cmsDateTimeNumber = PACKED RECORD
- year: cmsUInt16Number;
- month: cmsUInt16Number;
- day: cmsUInt16Number;
- hours: cmsUInt16Number;
- minutes: cmsUInt16Number;
- seconds: cmsUInt16Number;
- END;
- // ICC XYZ
- cmsEncodedXYZNumber = PACKED RECORD
- X: cmsS15Fixed16Number;
- Y: cmsS15Fixed16Number;
- Z: cmsS15Fixed16Number;
- END;
- // Profile ID as computed by MD5 algorithm
- cmsProfileID = PACKED RECORD
- CASE Integer OF
- 1: (ID8: Array[0..15] OF cmsUInt8Number);
- 2: (ID16: Array[0..7] OF cmsUInt16Number);
- 3: (ID32: Array[0..3] OF cmsUInt32Number);
- END;
- // ----------------------------------------------------------------------------------------------
- // ICC profile internal base types. Strictly, shouldn't be declared in this unit, but maybe
- // somebody want to use this info for accessing profile header directly, so here it is.
- // Profile header -- it is 32-bit aligned, so no issues are expected on alignment
- cmsICCHeader = PACKED RECORD
- size: cmsUInt32Number; // Profile size in bytes
- cmmId: cmsSignature; // CMM for this profile
- version: cmsUInt32Number; // Format version number
- deviceClass: cmsProfileClassSignature; // Type of profile
- colorSpace: cmsColorSpaceSignature; // Color space of data
- pcs: cmsColorSpaceSignature; // PCS, XYZ or Lab only
- date: cmsDateTimeNumber; // Date profile was created
- magic: cmsSignature; // Magic Number to identify an ICC profile
- platform: cmsPlatformSignature; // Primary Platform
- flags: cmsUInt32Number; // Various bit settings
- manufacturer: cmsSignature; // Device manufacturer
- model: cmsUInt32Number; // Device model number
- attributes: cmsUInt64Number; // Device attributes
- renderingIntent:cmsUInt32Number; // Rendering intent
- illuminant: cmsEncodedXYZNumber; // Profile illuminant
- creator: cmsSignature; // Profile creator
- profileID: cmsProfileID; // Profile ID using MD5
- reserved: array [0..27] of cmsInt8Number; // Reserved for future use
- END;
- // ICC base tag
- cmsTagBase = PACKED RECORD
- sig: cmsTagTypeSignature;
- reserved: array[0..3] of cmsInt8Number;
- END;
- // A tag entry in directory
- cmsTagEntry = PACKED RECORD
- sig: cmsTagSignature; // The tag signature
- offset: cmsUInt32Number; // Start of tag
- size: cmsUInt32Number; // Size in bytes
- END;
- cmsContext = Pointer; // Context identifier for multithreaded environments
- cmsHANDLE = Pointer; // Generic handle
- cmsHPROFILE = Pointer; // Opaque typedefs to hide internals
- cmsHTRANSFORM = Pointer;
- CONST
- cmsMAXCHANNELS = 16; // Maximum number of channels in ICC profiles
- // Format of pixel is defined by one cmsUInt32Number, using bit fields as follows
- //
- // A O TTTTT U Y F P X S EEE CCCC BBB
- //
- // A: Floating point -- With this flag we can differentiate 16 bits as float and as int
- // O: Optimized -- previous optimization already returns the final 8-bit value
- // T: Pixeltype
- // F: Flavor 0=MinIsBlack(Chocolate) 1=MinIsWhite(Vanilla)
- // P: Planar? 0=Chunky, 1=Planar
- // X: swap 16 bps endianness?
- // S: Do swap? ie, BGR, KYMC
- // E: Extra samples
- // C: Channels (Samples per pixel)
- // B: bytes per sample
- // Y: Swap first - changes ABGR to BGRA and KCMY to CMYK
- FUNCTION FLOAT_SH(a: cmsUInt32Number): cmsUInt32Number;
- FUNCTION OPTIMIZED_SH(s: cmsUInt32Number): cmsUInt32Number;
- FUNCTION COLORSPACE_SH(s: cmsUInt32Number):cmsUInt32Number;
- FUNCTION SWAPFIRST_SH(s: cmsUInt32Number):cmsUInt32Number;
- FUNCTION FLAVOR_SH(s: cmsUInt32Number):cmsUInt32Number;
- FUNCTION PLANAR_SH(p: cmsUInt32Number):cmsUInt32Number;
- FUNCTION ENDIAN16_SH(e: cmsUInt32Number):cmsUInt32Number;
- FUNCTION DOSWAP_SH(e: cmsUInt32Number):cmsUInt32Number;
- FUNCTION EXTRA_SH(e: cmsUInt32Number):cmsUInt32Number;
- FUNCTION CHANNELS_SH(c: cmsUInt32Number):cmsUInt32Number;
- FUNCTION BYTES_SH(b: cmsUInt32Number):cmsUInt32Number;
- FUNCTION T_FLOAT(a: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_OPTIMIZED(o: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_COLORSPACE(s: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_SWAPFIRST(s: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_FLAVOR(s: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_PLANAR(p: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_ENDIAN16(e: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_DOSWAP(e: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_EXTRA(e: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_CHANNELS(c: cmsUInt32Number): cmsUInt32Number;
- FUNCTION T_BYTES(b: cmsUInt32Number): cmsUInt32Number;
- CONST
- // Pixel types
- PT_ANY = 0; // Don't check colorspace
- // 1 & 2 are reserved
- PT_GRAY = 3;
- PT_RGB = 4;
- PT_CMY = 5;
- PT_CMYK = 6;
- PT_YCbCr = 7;
- PT_YUV = 8; // Lu'v'
- PT_XYZ = 9;
- PT_Lab = 10;
- PT_YUVK = 11; // Lu'v'K
- PT_HSV = 12;
- PT_HLS = 13;
- PT_Yxy = 14;
- PT_MCH1 = 15;
- PT_MCH2 = 16;
- PT_MCH3 = 17;
- PT_MCH4 = 18;
- PT_MCH5 = 19;
- PT_MCH6 = 20;
- PT_MCH7 = 21;
- PT_MCH8 = 22;
- PT_MCH9 = 23;
- PT_MCH10 = 24;
- PT_MCH11 = 25;
- PT_MCH12 = 26;
- PT_MCH13 = 27;
- PT_MCH14 = 28;
- PT_MCH15 = 29;
- PT_LabV2 = 30; // Identical to PT_Lab, but using the V2 old encoding
- // Format descriptors
- TYPE_GRAY_8 = $030009;
- TYPE_GRAY_8_REV = $032009;
- TYPE_GRAY_16 = $03000a;
- TYPE_GRAY_16_REV = $03200a;
- TYPE_GRAY_16_SE = $03080a;
- TYPE_GRAYA_8 = $030089;
- TYPE_GRAYA_16 = $03008a;
- TYPE_GRAYA_16_SE = $03088a;
- TYPE_GRAYA_8_PLANAR = $031089;
- TYPE_GRAYA_16_PLANAR = $03108a;
- TYPE_RGB_8 = $040019;
- TYPE_RGB_8_PLANAR = $041019;
- TYPE_BGR_8 = $040419;
- TYPE_BGR_8_PLANAR = $041419;
- TYPE_RGB_16 = $04001a;
- TYPE_RGB_16_PLANAR = $04101a;
- TYPE_RGB_16_SE = $04081a;
- TYPE_BGR_16 = $04041a;
- TYPE_BGR_16_PLANAR = $04141a;
- TYPE_BGR_16_SE = $040c1a;
- TYPE_RGBA_8 = $040099;
- TYPE_RGBA_8_PLANAR = $041099;
- TYPE_ARGB_8_PLANAR = $045099;
- TYPE_ABGR_8_PLANAR = $041499;
- TYPE_BGRA_8_PLANAR = $045499;
- TYPE_RGBA_16 = $04009a;
- TYPE_RGBA_16_PLANAR = $04109a;
- TYPE_RGBA_16_SE = $04089a;
- TYPE_ARGB_8 = $044099;
- TYPE_ARGB_16 = $04409a;
- TYPE_ABGR_8 = $040499;
- TYPE_ABGR_16 = $04049a;
- TYPE_ABGR_16_PLANAR = $04149a;
- TYPE_ABGR_16_SE = $040c9a;
- TYPE_BGRA_8 = $044499;
- TYPE_BGRA_16 = $04449a;
- TYPE_BGRA_16_SE = $04489a;
- TYPE_CMY_8 = $050019;
- TYPE_CMY_8_PLANAR = $051019;
- TYPE_CMY_16 = $05001a;
- TYPE_CMY_16_PLANAR = $05101a;
- TYPE_CMY_16_SE = $05081a;
- TYPE_CMYK_8 = $060021;
- TYPE_CMYKA_8 = $0600a1;
- TYPE_CMYK_8_REV = $062021;
- TYPE_YUVK_8 = $062021;
- TYPE_CMYK_8_PLANAR = $061021;
- TYPE_CMYK_16 = $060022;
- TYPE_CMYK_16_REV = $062022;
- TYPE_YUVK_16 = $062022;
- TYPE_CMYK_16_PLANAR = $061022;
- TYPE_CMYK_16_SE = $060822;
- TYPE_KYMC_8 = $060421;
- TYPE_KYMC_16 = $060422;
- TYPE_KYMC_16_SE = $060c22;
- TYPE_KCMY_8 = $064021;
- TYPE_KCMY_8_REV = $066021;
- TYPE_KCMY_16 = $064022;
- TYPE_KCMY_16_REV = $066022;
- TYPE_KCMY_16_SE = $064822;
- TYPE_CMYK5_8 = $130029;
- TYPE_CMYK5_16 = $13002a;
- TYPE_CMYK5_16_SE = $13082a;
- TYPE_KYMC5_8 = $130429;
- TYPE_KYMC5_16 = $13042a;
- TYPE_KYMC5_16_SE = $130c2a;
- TYPE_CMYK6_8 = $140031;
- TYPE_CMYK6_8_PLANAR = $141031;
- TYPE_CMYK6_16 = $140032;
- TYPE_CMYK6_16_PLANAR = $141032;
- TYPE_CMYK6_16_SE = $140832;
- TYPE_CMYK7_8 = $150039;
- TYPE_CMYK7_16 = $15003a;
- TYPE_CMYK7_16_SE = $15083a;
- TYPE_KYMC7_8 = $150439;
- TYPE_KYMC7_16 = $15043a;
- TYPE_KYMC7_16_SE = $150c3a;
- TYPE_CMYK8_8 = $160041;
- TYPE_CMYK8_16 = $160042;
- TYPE_CMYK8_16_SE = $160842;
- TYPE_KYMC8_8 = $160441;
- TYPE_KYMC8_16 = $160442;
- TYPE_KYMC8_16_SE = $160c42;
- TYPE_CMYK9_8 = $170049;
- TYPE_CMYK9_16 = $17004a;
- TYPE_CMYK9_16_SE = $17084a;
- TYPE_KYMC9_8 = $170449;
- TYPE_KYMC9_16 = $17044a;
- TYPE_KYMC9_16_SE = $170c4a;
- TYPE_CMYK10_8 = $180051;
- TYPE_CMYK10_16 = $180052;
- TYPE_CMYK10_16_SE = $180852;
- TYPE_KYMC10_8 = $180451;
- TYPE_KYMC10_16 = $180452;
- TYPE_KYMC10_16_SE = $180c52;
- TYPE_CMYK11_8 = $190059;
- TYPE_CMYK11_16 = $19005a;
- TYPE_CMYK11_16_SE = $19085a;
- TYPE_KYMC11_8 = $190459;
- TYPE_KYMC11_16 = $19045a;
- TYPE_KYMC11_16_SE = $190c5a;
- TYPE_CMYK12_8 = $1a0061;
- TYPE_CMYK12_16 = $1a0062;
- TYPE_CMYK12_16_SE = $1a0862;
- TYPE_KYMC12_8 = $1a0461;
- TYPE_KYMC12_16 = $1a0462;
- TYPE_KYMC12_16_SE = $1a0c62;
- TYPE_XYZ_16 = $09001a;
- TYPE_Lab_8 = $0a0019;
- TYPE_ALab_8 = $0a0499;
- TYPE_Lab_16 = $0a001a;
- TYPE_Yxy_16 = $0e001a;
- TYPE_YCbCr_8 = $070019;
- TYPE_YCbCr_8_PLANAR = $071019;
- TYPE_YCbCr_16 = $07001a;
- TYPE_YCbCr_16_PLANAR = $07101a;
- TYPE_YCbCr_16_SE = $07081a;
- TYPE_YUV_8 = $080019;
- TYPE_YUV_8_PLANAR = $081019;
- TYPE_YUV_16 = $08001a;
- TYPE_YUV_16_PLANAR = $08101a;
- TYPE_YUV_16_SE = $08081a;
- TYPE_HLS_8 = $0d0019;
- TYPE_HLS_8_PLANAR = $0d1019;
- TYPE_HLS_16 = $0d001a;
- TYPE_HLS_16_PLANAR = $0d101a;
- TYPE_HLS_16_SE = $0d081a;
- TYPE_HSV_8 = $0c0019;
- TYPE_HSV_8_PLANAR = $0c1019;
- TYPE_HSV_16 = $0c001a;
- TYPE_HSV_16_PLANAR = $0c101a;
- TYPE_HSV_16_SE = $0c081a;
- TYPE_NAMED_COLOR_INDEX = $000A;
- TYPE_XYZ_FLT = $49001c;
- TYPE_Lab_FLT = $4a001c;
- TYPE_GRAY_FLT = $43000c;
- TYPE_RGB_FLT = $44001c;
- TYPE_CMYK_FLT = $460024;
- TYPE_XYZA_FLT = $49009c;
- TYPE_LabA_FLT = $4a009c;
- TYPE_RGBA_FLT = $44009c;
- TYPE_XYZ_DBL = $490018;
- TYPE_Lab_DBL = $4a0018;
- TYPE_GRAY_DBL = $430008;
- TYPE_RGB_DBL = $440018;
- TYPE_CMYK_DBL = $460020;
- TYPE_LabV2_8 = $1e0019;
- TYPE_ALabV2_8 = $1e0499;
- TYPE_LabV2_16 = $1e001a;
- TYPE_GRAY_HALF_FLT = $43000a;
- TYPE_RGB_HALF_FLT = $44001a;
- TYPE_RGBA_HALF_FLT = $44009a;
- TYPE_CMYK_HALF_FLT = $460022;
- TYPE_ARGB_HALF_FLT = $44409a;
- TYPE_BGR_HALF_FLT = $44041a;
- TYPE_BGRA_HALF_FLT = $44449a;
- TYPE_ABGR_HALF_FLT = $44041a;
- TYPE
- // Colorimetric spaces
- cmsCIEXYZ = PACKED RECORD
- X, Y, Z : cmsFloat64Number;
- END;
- LPcmsCIEXYZ = ^cmsCIEXYZ;
- cmsCIExyY = PACKED RECORD
- x, y, YY : cmsFloat64Number
- END;
- LPcmsCIExyY = ^cmsCIEXYY;
- cmsCIELab = PACKED RECORD
- L, a, b: cmsFloat64Number
- END;
- LPcmsCIELab = ^cmsCIELab;
- cmsCIELCh = PACKED RECORD
- L, C, h : cmsFloat64Number
- END;
- LPcmsCIELCh = ^cmsCIELCh;
- cmsJCh = PACKED RECORD
- J, C, h : cmsFloat64Number
- END;
- LPcmsJCh = ^cmsJCH;
- cmsCIEXYZTRIPLE = PACKED RECORD
- Red, Green, Blue : cmsCIEXYZ
- END;
- LPcmsCIEXYZTRIPLE = ^cmsCIEXYZTRIPLE;
- cmsCIExyYTRIPLE = PACKED RECORD
- Red, Green, Blue : cmsCIExyY
- END;
- LPcmsCIExyYTRIPLE = ^cmsCIExyYTRIPLE;
- CONST
- // Illuminant types for structs below
- cmsILLUMINANT_TYPE_UNKNOWN = $0000000;
- cmsILLUMINANT_TYPE_D50 = $0000001;
- cmsILLUMINANT_TYPE_D65 = $0000002;
- cmsILLUMINANT_TYPE_D93 = $0000003;
- cmsILLUMINANT_TYPE_F2 = $0000004;
- cmsILLUMINANT_TYPE_D55 = $0000005;
- cmsILLUMINANT_TYPE_A = $0000006;
- cmsILLUMINANT_TYPE_E = $0000007;
- cmsILLUMINANT_TYPE_F8 = $0000008;
- TYPE
- cmsICCMeasurementConditions = PACKED RECORD
- Observer: cmsUInt32Number; // 0 = unknown, 1=CIE 1931, 2=CIE 1964
- Backing: cmsCIEXYZ; // Value of backing
- Geometry: cmsUInt32Number; // 0=unknown, 1=45/0, 0/45 2=0d, d/0
- Flare: cmsFloat64Number; // 0..1.0
- IlluminantType: cmsUInt32Number;
- END;
- cmsICCViewingConditions = PACKED RECORD
- IlluminantXYZ: cmsCIEXYZ; // Not the same struct as CAM02,
- SurroundXYZ: cmsCIEXYZ; // This is for storing the tag
- IlluminantType: cmsUInt32Number; // viewing condition
- END;
- // Context --------------------------------------------------------------------------------------------------------------
- FUNCTION cmsCreateContext(Plugin : Pointer; UserData : Pointer) : cmsContext; StdCall;
- PROCEDURE cmsDeleteContext(ContextID: cmsContext); StdCall;
- FUNCTION cmsDupContext(ContextID: cmsContext; NewUserData: Pointer): cmsContext; StdCall;
- FUNCTION cmsGetContextUserData(ContextID: cmsContext): Pointer; StdCall;
- // Plug-In registering ---------------------------------------------------------------------------------------------------
- FUNCTION cmsPlugin(Plugin: Pointer): cmsBool; StdCall;
- PROCEDURE cmsUnregisterPlugins; StdCall;
- // Error logging ----------------------------------------------------------------------------------------------------------
- // There is no error handling at all. When a function fails, it returns proper value.
- // For example, all create functions does return NULL on failure. Other may return FALSE.
- // It may be interesting, for the developer, to know why the function is failing.
- // for that reason, lcms2 does offer a logging function. This function will get
- // an ENGLISH string with some clues on what is going wrong. You can show this
- // info to the end user if you wish, or just create some sort of log on disk.
- // The logging function should NOT terminate the program, as this obviously can leave
- // unfreed resources. It is the programmer's responsibility to check each function
- // return code to make sure it didn't fail.
- CONST
- cmsERROR_UNDEFINED = 0;
- cmsERROR_FILE = 1;
- cmsERROR_RANGE = 2;
- cmsERROR_INTERNAL = 3;
- cmsERROR_NULL = 4;
- cmsERROR_READ = 5;
- cmsERROR_SEEK = 6;
- cmsERROR_WRITE = 7;
- cmsERROR_UNKNOWN_EXTENSION = 8;
- cmsERROR_COLORSPACE_CHECK = 9;
- cmsERROR_ALREADY_DEFINED = 10;
- cmsERROR_BAD_SIGNATURE = 11;
- cmsERROR_CORRUPTION_DETECTED = 12;
- cmsERROR_NOT_SUITABLE = 13;
- // Error logger is called with the ContextID when a message is raised. This gives the
- // chance to know which thread is responsible of the warning and any environment associated
- // with it. Non-multithreading applications may safely ignore this parameter.
- // Note that under certain special circumstances, ContextID may be NULL.
- TYPE
- cmsLogErrorHandlerFunction = PROCEDURE( ContextID: cmsContext; ErrorCode: cmsUInt32Number; Text: PAnsiChar); CDecl;
- // Allows user to set any specific logger
- PROCEDURE cmsSetLogErrorHandler(Fn: cmsLogErrorHandlerFunction); StdCall;
- // Conversions --------------------------------------------------------------------------------------------------------------
- // Returns pointers to constant structs
- FUNCTION cmsD50_XYZ: LPcmsCIEXYZ; StdCall;
- FUNCTION cmsD50_xyY: LPcmsCIExyY; StdCall;
- // Colorimetric space conversions
- PROCEDURE cmsXYZ2xyY(Dest: LPcmsCIExyY; Source: LPcmsCIEXYZ); StdCall;
- PROCEDURE cmsxyY2XYZ(Dest: LPcmsCIEXYZ; Source: LPcmsCIExyY); StdCall;
- PROCEDURE cmsLab2XYZ(WhitePoint: LPcmsCIEXYZ; xyz: LPcmsCIEXYZ; Lab: LPcmsCIELab); StdCall;
- PROCEDURE cmsXYZ2Lab(WhitePoint: LPcmsCIEXYZ; Lab: LPcmsCIELab; xyz: LPcmsCIEXYZ); StdCall;
- PROCEDURE cmsLab2LCh(LCh: LPcmsCIELCh; Lab: LPcmsCIELab); StdCall;
- PROCEDURE cmsLCh2Lab(Lab: LPcmsCIELab; LCh: LPcmsCIELCh); StdCall;
- // Encoding /Decoding on PCS
- PROCEDURE cmsLabEncoded2Float(Lab: LPcmsCIELab; wLab: Pointer); StdCall;
- PROCEDURE cmsLabEncoded2FloatV2(Lab: LPcmsCIELab; wLab: Pointer); StdCall;
- PROCEDURE cmsFloat2LabEncoded(wLab: Pointer; Lab: LPcmsCIELab); StdCall;
- PROCEDURE cmsFloat2LabEncodedV2(wLab: Pointer; Lab: LPcmsCIELab); StdCall;
- PROCEDURE cmsXYZEncoded2Float(fxyz : LPcmsCIEXYZ; XYZ: Pointer); StdCall;
- PROCEDURE cmsFloat2XYZEncoded(XYZ: Pointer; fXYZ: LPcmsCIEXYZ); StdCall;
- // DeltaE metrics
- FUNCTION cmsDeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall;
- FUNCTION cmsCIE94DeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall;
- FUNCTION cmsBFDdeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall;
- FUNCTION cmsCMCdeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall;
- FUNCTION cmsCIE2000DeltaE(Lab1, Lab2: LPcmsCIELab; Kl, Kc, Kh: Double): Double; StdCall;
- // Temperature <-> Chromaticity (Black body)
- FUNCTION cmsWhitePointFromTemp(var WhitePoint: cmsCIExyY; TempK: cmsFloat64Number) : cmsBool; StdCall;
- FUNCTION cmsTempFromWhitePoint(var TeampK: cmsFloat64Number; var WhitePoint: cmsCIExyY) : cmsBool; StdCall;
- // Chromatic adaptation
- FUNCTION cmsAdaptToIlluminant(Result: LPcmsCIEXYZ; SourceWhitePt: LPcmsCIEXYZ;
- Illuminant: LPcmsCIEXYZ; Value: LPcmsCIEXYZ): cmsBool; StdCall;
- // CIECAM02 ---------------------------------------------------------------------------------------------------
- // Viewing conditions. Please note those are CAM model viewing conditions, and not the ICC tag viewing
- // conditions, which I'm naming cmsICCViewingConditions to make differences evident. Unfortunately, the tag
- // cannot deal with surround La, Yb and D value so is basically useless to store CAM02 viewing conditions.
- CONST
- AVG_SURROUND = 1;
- DIM_SURROUND = 2;
- DARK_SURROUND = 3;
- CUTSHEET_SURROUND = 4;
- D_CALCULATE = -1;
- TYPE
- cmsViewingConditions = PACKED RECORD
- WhitePoint: cmsCIEXYZ;
- Yb : cmsFloat64Number;
- La : cmsFloat64Number;
- surround : Integer;
- D_value : cmsFloat64Number
- END;
- LPcmsViewingConditions = ^cmsViewingConditions;
- FUNCTION cmsCIECAM02Init(pVC : LPcmsViewingConditions ) : Pointer; StdCall;
- PROCEDURE cmsCIECAM02Done(hModel : Pointer); StdCall;
- PROCEDURE cmsCIECAM02Forward(hModel: Pointer; pIn: LPcmsCIEXYZ; pOut: LPcmsJCh ); StdCall;
- PROCEDURE cmsCIECAM02Reverse(hModel: Pointer; pIn: LPcmsJCh; pOut: LPcmsCIEXYZ ); StdCall;
- // Tone curves -----------------------------------------------------------------------------------------
- // This describes a curve segment. For a table of supported types, see the manual. User can increase the number of
- // available types by using a proper plug-in. Parametric segments allow 10 parameters at most
- TYPE
- cmsCurveSegment = PACKED RECORD
- x0, x1: cmsFloat32Number; // Domain; for x0 < x <= x1
- PType: cmsInt32Number; // Parametric type, Type == 0 means sampled segment. Negative values are reserved
- Params: array [0..9] of cmsFloat64Number; // Parameters if Type != 0
- nGridPoints: cmsUInt32Number; // Number of grid points if Type == 0
- SampledPoints: LPcmsFloat32Number; // Points to an array of floats if Type == 0
- END;
- LPcmsToneCurve = Pointer;
- LPcmsCurveSegmentArray = ^cmsCurveSegmentArray;
- cmsCurveSegmentArray = array[0..0] of cmsCurveSegment;
- LPcmsFloat64NumberArray = ^cmsFloat64NumberArray;
- cmsFloat64NumberArray = array[0..0] of cmsFloat64Number;
- LPcmsUInt16NumberArray = ^cmsUInt16NumberArray;
- cmsUInt16NumberArray = array[0..0] of cmsUInt16Number;
- LPcmsFloat32NumberArray = ^cmsFloat32NumberArray;
- cmsFloat32NumberArray = array[0..0] of cmsFloat32Number;
- LPLPcmsToneCurveArray = ^LPcmsToneCurveArray;
- LPcmsToneCurveArray = array[0..0] of LPcmsToneCurve;
- LPcmsUInt32NumberArray = ^cmsUInt32NumberArray;
- cmsUInt32NumberArray = array[0..0] of cmsUInt32Number;
- FUNCTION cmsBuildSegmentedToneCurve(ContextID: cmsContext; nSegments: cmsInt32Number; Segments: LPcmsCurveSegmentArray): LPcmsToneCurve; StdCall;
- FUNCTION cmsBuildParametricToneCurve(ContextID: cmsContext; CType: cmsInt32Number; Params: LPcmsFloat64NumberArray): LPcmsToneCurve; StdCall;
- FUNCTION cmsBuildGamma(ContextID: cmsContext; Gamma: cmsFloat64Number): LPcmsToneCurve; StdCall;
- FUNCTION cmsBuildTabulatedToneCurve16(ContextID: cmsContext; nEntries: cmsInt32Number; values: LPcmsUInt16NumberArray): LPcmsToneCurve; StdCall;
- FUNCTION cmsBuildTabulatedToneCurveFloat(ContextID: cmsContext; nEntries: cmsUInt32Number; values: LPcmsFloat32NumberArray): LPcmsToneCurve; StdCall;
- PROCEDURE cmsFreeToneCurve(Curve: LPcmsToneCurve); StdCall;
- PROCEDURE cmsFreeToneCurveTriple(Curve: LPLPcmsToneCurveArray); StdCall;
- FUNCTION cmsDupToneCurve(Src: LPcmsToneCurve): LPcmsToneCurve; StdCall;
- FUNCTION cmsReverseToneCurve(InGamma: LPcmsToneCurve): LPcmsToneCurve; StdCall;
- FUNCTION cmsReverseToneCurveEx(nResultSamples: cmsInt32Number; InGamma: LPcmsToneCurve): LPcmsToneCurve; StdCall;
- FUNCTION cmsJoinToneCurve(ContextID: cmsContext; X, Y: LPcmsToneCurve; nPoints: cmsUInt32Number ): LPcmsToneCurve; StdCall;
- FUNCTION cmsSmoothToneCurve(Tab: LPcmsToneCurve; lambda: cmsFloat64Number): cmsBool; StdCall;
- FUNCTION cmsEvalToneCurveFloat(Curve: LPcmsToneCurve; v: cmsFloat32Number):cmsFloat32Number; StdCall;
- FUNCTION cmsEvalToneCurve16(Curve: LPcmsToneCurve; v:cmsUInt16Number):cmsUInt16Number; StdCall;
- FUNCTION cmsIsToneCurveMultisegment(InGamma: LPcmsToneCurve):cmsBool; StdCall;
- FUNCTION cmsIsToneCurveLinear(Curve: LPcmsToneCurve):cmsBool; StdCall;
- FUNCTION cmsIsToneCurveMonotonic(t: LPcmsToneCurve):cmsBool; StdCall;
- FUNCTION cmsIsToneCurveDescending(t: LPcmsToneCurve):cmsBool; StdCall;
- FUNCTION cmsGetToneCurveParametricType(t: LPcmsToneCurve):cmsInt32Number; StdCall;
- FUNCTION cmsEstimateGamma(t: LPcmsToneCurve; Precision:cmsFloat64Number):cmsFloat64Number; StdCall;
- FUNCTION cmsGetToneCurveEstimatedTableEntries(t: LPcmsToneCurve): cmsUInt32Number; StdCall;
- FUNCTION cmsGetToneCurveEstimatedTable(t: LPcmsToneCurve): LPcmsUInt16Number; StdCall;
- // Implements pipelines of multi-processing elements -------------------------------------------------------------
- TYPE
- LPcmsPipeline = Pointer;
- LPcmsStage = Pointer;
- LPLPcmsStage = ^LPcmsStage;
- // Those are hi-level pipelines
- FUNCTION cmsPipelineAlloc(ContextID: cmsContext; InputChannels, OutputChannels: cmsUInt32Number): LPcmsPipeline; StdCall;
- PROCEDURE cmsPipelineFree(lut: LPcmsPipeline); StdCall;
- FUNCTION cmsPipelineDup(Orig: LPcmsPipeline): LPcmsPipeline; StdCall;
- FUNCTION cmsGetPipelineContextID(lut: LPcmsPipeline) : cmsContext; StdCall;
- FUNCTION cmsPipelineInputChannels(lut: LPcmsPipeline): cmsUInt32Number; StdCall;
- FUNCTION cmsPipelineOutputChannels(lut: LPcmsPipeline): cmsUInt32Number; StdCall;
- FUNCTION cmsPipelineStageCount(lut: LPcmsPipeline): cmsUInt32Number; StdCall;
- FUNCTION cmsPipelineGetPtrToFirstStage(lut: LPcmsPipeline): LPcmsStage; StdCall;
- FUNCTION cmsPipelineGetPtrToLastStage(lut: LPcmsPipeline): LPcmsStage; StdCall;
- PROCEDURE cmsPipelineEval16(Inv, Outv: LPcmsUInt16NumberArray; lut: LPcmsPipeline); StdCall;
- PROCEDURE cmsPipelineEvalFloat(Inv, Outv: LPcmsFloat32NumberArray; lut: LPcmsPipeline); StdCall;
- FUNCTION cmsPipelineEvalReverseFloat(Target, Result, Hint: LPcmsFloat32NumberArray; lut: LPcmsPipeline): cmsBool; StdCall;
- FUNCTION cmsPipelineCat(l1, l2: LPcmsPipeline): cmsBool; StdCall;
- FUNCTION cmsPipelineSetSaveAs8bitsFlag(lut: LPcmsPipeline; On: cmsBool): cmsBool; StdCall;
- // Where to place/locate the stages in the pipeline chain
- TYPE
- cmsStageLoc = (cmsAT_BEGIN = 0, cmsAT_END = 1 );
- PROCEDURE cmsPipelineInsertStage(lut: LPcmsPipeline; loc: cmsStageLoc; mpe: LPcmsStage); StdCall;
- PROCEDURE cmsPipelineUnlinkStage(lut: LPcmsPipeline; loc: cmsStageLoc; mpe: LPLPcmsStage); StdCall;
- // This function is quite useful to analyze the structure of a Pipeline and retrieve the Stage elements
- // that conform the Pipeline. It should be called with the Pipeline, the number of expected elements and
- // then a list of expected types followed with a list of double pointers to Stage elements. If
- // the function founds a match with current pipeline, it fills the pointers and returns TRUE
- // if not, returns FALSE without touching anything.
- // FUNCTION cmsPipelineCheckAndRetreiveStages(const cmsPipeline* Lut, n: cmsUInt32Number, ...): cmsBool; StdCall;
- // Matrix has double precision and CLUT has only float precision. That is because an ICC profile can encode
- // matrices with far more precision that CLUTS
- FUNCTION cmsStageAllocIdentity(ContextID: cmsContext; nChannels: cmsUInt32Number): LPcmsStage; StdCall;
- FUNCTION cmsStageAllocToneCurves(ContextID: cmsContext; nChannels: cmsUInt32Number; Curves: LPLPcmsToneCurveArray): LPcmsStage; StdCall;
- FUNCTION cmsStageAllocMatrix(ContextID: cmsContext; Rows, Cols: cmsUInt32Number; Matrix, Offset: LPcmsFloat64NumberArray): LPcmsStage; StdCall;
- FUNCTION cmsStageAllocCLut16bit(ContextID: cmsContext; nGridPoints: cmsUInt32Number; inputChan, outputChan: cmsUInt32Number; Table: LPcmsUInt16NumberArray): LPcmsStage; StdCall;
- FUNCTION cmsStageAllocCLutFloat(ContextID: cmsContext; nGridPoints: cmsUInt32Number; inputChan, outputChan: cmsUInt32Number; Table: LPcmsFloat32NumberArray): LPcmsStage; StdCall;
- FUNCTION cmsStageAllocCLut16bitGranular(ContextID: cmsContext; nGridPoints: LPcmsUInt32NumberArray; inputChan, outputChan: cmsUInt32Number; Table: LPcmsUInt16NumberArray): LPcmsStage; StdCall;
- FUNCTION cmsStageAllocCLutFloatGranular(ContextID: cmsContext; nGridPoints: LPcmsUInt32NumberArray; inputChan, outputChan: cmsUInt32Number; Table: LPcmsFloat32NumberArray): LPcmsStage; StdCall;
- FUNCTION cmsStageDup(mpe: LPcmsStage): LPcmsStage; StdCall;
- PROCEDURE cmsStageFree(mpe: LPcmsStage); StdCall;
- FUNCTION cmsStageNext(mpe: LPcmsStage): LPcmsStage; StdCall;
- FUNCTION cmsStageInputChannels(mpe: LPcmsStage): cmsUInt32Number; StdCall;
- FUNCTION cmsStageOutputChannels(mpe: LPcmsStage): cmsUInt32Number; StdCall;
- FUNCTION cmsStageType(mpe: LPcmsStage): cmsStageSignature; StdCall;
- FUNCTION cmsStageData(mpe: LPcmsStage): Pointer; StdCall;
- // Sampling
- Type
- cmsSAMPLER16 = FUNCTION (Inp, Outp: LPcmsUInt16NumberArray; Cargo: Pointer): cmsInt32Number; CDecl;
- cmsSAMPLERFLOAT = FUNCTION (Inp, Outp: LPcmsFloat32NumberArray; Cargo: Pointer): cmsInt32Number; CDecl;
- // Use this flag to prevent changes being written to destination
- Const
- SAMPLER_INSPECT = $01000000;
- // For CLUT only
- FUNCTION cmsStageSampleCLut16bit(mpe: LPcmsStage; Sampler: cmsSAMPLER16; Cargo: Pointer; dwFlags: cmsUInt32Number): cmsBool; StdCall;
- FUNCTION cmsStageSampleCLutFloat(mpe: LPcmsStage; Sampler: cmsSAMPLERFLOAT; Cargo: Pointer; dwFlags: cmsUInt32Number): cmsBool; StdCall;
- // Slicers
- FUNCTION cmsSliceSpace16(nInputs: cmsUInt32Number; clutPoints: LPcmsUInt32NumberArray;
- Sampler: cmsSAMPLER16; Cargo: Pointer): cmsBool; StdCall;
- FUNCTION cmsSliceSpaceFloat(nInputs: cmsUInt32Number; clutPoints: LPcmsUInt32NumberArray;
- Sampler: cmsSAMPLERFLOAT; Cargo: Pointer): cmsBool; StdCall;
- // Multilocalized Unicode management ---------------------------------------------------------------------------------------
- Type
- LPcmsMLU = Pointer;
- Const
- cmsNoLanguage = #0#0#0;
- cmsNoCountry = #0#0#0;
- FUNCTION cmsMLUalloc(ContextID: cmsContext; nItems: cmsUInt32Number): LPcmsMLU; StdCall;
- PROCEDURE cmsMLUfree(mlu: LPcmsMLU); StdCall;
- FUNCTION cmsMLUdup(mlu: LPcmsMLU): LPcmsMLU; StdCall;
- FUNCTION cmsMLUsetASCII(mlu: LPcmsMLU; LanguageCode, CountryCode, ASCIIString: PAnsiChar): cmsBool; StdCall;
- FUNCTION cmsMLUsetWide(mlu: LPcmsMLU; LanguageCode, CountryCode: PAnsiChar; WideString: PWChar): cmsBool; StdCall;
- FUNCTION cmsMLUgetASCII(mlu: LPcmsMLU; LanguageCode, CountryCode: PAnsiChar; Buffer: PAnsiChar; BufferSize: cmsUInt32Number): cmsUInt32Number; StdCall;
- FUNCTION cmsMLUgetWide(mlu: LPcmsMLU; LanguageCode, CountryCode: PAnsiChar; Buffer: PWChar; BufferSize: cmsUInt32Number): cmsUInt32Number; StdCall;
- FUNCTION cmsMLUgetTranslation(mlu: LPcmsMLU; LanguageCode, CountryCode, ObtainedLanguage, ObtainedCountry: PAnsiChar): cmsBool; StdCall;
- // Undercolorremoval & black generation -------------------------------------------------------------------------------------
- Type
- cmsUcrBg = PACKED RECORD
- Ucr, Bg: LPcmsToneCurve;
- Desc: LPcmsMLU;
- END;
- // Screening ----------------------------------------------------------------------------------------------------------------
- Const
- cmsPRINTER_DEFAULT_SCREENS = $0001;
- cmsFREQUENCE_UNITS_LINES_CM = $0000;
- cmsFREQUENCE_UNITS_LINES_INCH = $0002;
- cmsSPOT_UNKNOWN = 0;
- cmsSPOT_PRINTER_DEFAULT = 1;
- cmsSPOT_ROUND = 2;
- cmsSPOT_DIAMOND = 3;
- cmsSPOT_ELLIPSE = 4;
- cmsSPOT_LINE = 5;
- cmsSPOT_SQUARE = 6;
- cmsSPOT_CROSS = 7;
- Type
- cmsScreeningChannel = PACKED RECORD
- Frequency,
- ScreenAngle: cmsFloat64Number;
- SpotShape: cmsUInt32Number;
- END;
- cmsScreening = PACKED RECORD
- Flag,
- nChannels : cmsUInt32Number;
- Channels: Array [0..cmsMAXCHANNELS-1] OF cmsScreeningChannel;
- END;
- // Named color -----------------------------------------------------------------------------------------------------------------
- LPcmsNAMEDCOLORLIST = Pointer;
- FUNCTION cmsAllocNamedColorList(ContextID: cmsContext; n, ColorantCount :cmsUInt32Number;
- Prefix, Suffix: PAnsiChar): LPcmsNAMEDCOLORLIST; StdCall;
- PROCEDURE cmsFreeNamedColorList(v: LPcmsNAMEDCOLORLIST); StdCall;
- FUNCTION cmsDupNamedColorList(v: LPcmsNAMEDCOLORLIST): LPcmsNAMEDCOLORLIST; StdCall;
- FUNCTION cmsAppendNamedColor(v: LPcmsNAMEDCOLORLIST; Name: PAnsiChar;
- PCS, Colorant : LPcmsUInt16NumberArray): cmsBool; StdCall;
- FUNCTION cmsNamedColorCount(v: LPcmsNAMEDCOLORLIST): cmsUInt32Number; StdCall;
- FUNCTION cmsNamedColorIndex(v: LPcmsNAMEDCOLORLIST; Name: PAnsiChar): cmsInt32Number; StdCall;
- FUNCTION cmsNamedColorInfo(v: LPcmsNAMEDCOLORLIST; nColor : cmsUInt32Number;
- Name,Prefix, Suffix : PAnsiChar;
- PCS, Colorant : LPcmsUInt16NumberArray): cmsBool; StdCall;
- // Retrieve named color list from transform
- FUNCTION cmsGetNamedColorList(xform: cmsHTRANSFORM ): LPcmsNAMEDCOLORLIST; StdCall;
- // Profile sequence -----------------------------------------------------------------------------------------------------
- Type
- // Profile sequence descriptor. Some fields come from profile sequence descriptor tag, others
- // come from Profile Sequence Identifier Tag
- cmsPSEQDESC = PACKED RECORD
- deviceMfg, deviceModel: cmsSignature;
- attributes: cmsUInt64Number;
- technology: cmsTechnologySignature;
- ProfileID: cmsProfileID;
- Manufacturer,
- Model,
- Description : LPcmsMLU;
- END;
- LPcmsSEQDESC = ^cmsPSEQDESC;
- cmsSEQ = PACKED RECORD
- n: cmsUInt32Number;
- ContextID: cmsContext;
- seq: LPcmsSEQDESC;
- END;
- LPcmsSEQ = ^cmsSEQ;
- FUNCTION cmsAllocProfileSequenceDescription(ContextID: cmsContext; n: cmsUInt32Number):LPcmsSEQ; StdCall;
- FUNCTION cmsDupProfileSequenceDescription(pseq: LPcmsSEQ):LPcmsSEQ; StdCall;
- PROCEDURE cmsFreeProfileSequenceDescription(pseq: LPcmsSEQ); StdCall;
- // Dictionaries --------------------------------------------------------------------------------------------------------
- TYPE
- LPcmsDICTentry = ^cmsDICTentry;
- cmsDICTentry = PACKED RECORD
- Next: LPcmsDICTentry;
- DisplayName, DisplayValue: LPcmsMLU;
- Name, Value : PWChar;
- END;
- FUNCTION cmsDictAlloc(ContextID: cmsContext): cmsHANDLE; StdCall;
- PROCEDURE cmsDictFree(hDict: cmsHANDLE); StdCall;
- FUNCTION cmsDictDup(hDict: cmsHANDLE): cmsHANDLE; StdCall;
- FUNCTION cmsDictAddEntry(hDict: cmsHANDLE; Name, Value: PWChar; DisplayName, DisplayValue : LPcmsMLU): cmsBool; StdCall;
- FUNCTION cmsDictGetEntryList(hDict: cmsHANDLE): LPcmsDICTentry; StdCall;
- FUNCTION cmsDictNextEntry(e : LPcmsDICTentry): LPcmsDICTentry; StdCall;
- // Access to Profile data ----------------------------------------------------------------------------------------------
- FUNCTION cmsCreateProfilePlaceholder(ContextID: cmsContext): cmsHPROFILE; StdCall;
- FUNCTION cmsGetProfileContextID(hProfile: cmsHPROFILE):cmsContext; StdCall;
- FUNCTION cmsGetTagCount(hProfile: cmsHPROFILE): cmsInt32Number; StdCall;
- FUNCTION cmsGetTagSignature(hProfile: cmsHPROFILE; n: cmsUInt32Number): cmsTagSignature; StdCall;
- FUNCTION cmsIsTag(hProfile: cmsHPROFILE; sig: cmsTagSignature ): cmsBool; StdCall;
- // Read and write pre-formatted data
- FUNCTION cmsReadTag(hProfile: cmsHPROFILE; sig: cmsTagSignature ): Pointer; StdCall;
- FUNCTION cmsWriteTag(hProfile: cmsHPROFILE; sig: cmsTagSignature; data: Pointer): cmsBool; StdCall;
- FUNCTION cmsLinkTag(hProfile: cmsHPROFILE; sig: cmsTagSignature; dest: cmsTagSignature): cmsBool; StdCall;
- FUNCTION cmsTagLinkedTo(hProfile: cmsHPROFILE; sig: cmsTagSignature):cmsTagSignature; StdCall;
- // Read and write raw data
- FUNCTION cmsReadRawTag(hProfile: cmsHPROFILE; sig: cmsTagSignature; Buffer: Pointer; BufferSize: cmsUInt32Number): cmsInt32Number; StdCall;
- FUNCTION cmsWriteRawTag(hProfile: cmsHPROFILE; sig: cmsTagSignature; data: Pointer; Size: cmsUInt32Number): cmsBool; StdCall;
- // Access header data
- Const
- cmsEmbeddedProfileFalse = $00000000;
- cmsEmbeddedProfileTrue = $00000001;
- cmsUseAnywhere = $00000000;
- cmsUseWithEmbeddedDataOnly = $00000002;
- FUNCTION cmsGetHeaderFlags(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall;
- PROCEDURE cmsGetHeaderAttributes(hProfile: cmsHPROFILE; Flags: LPcmsUInt64Number); StdCall;
- PROCEDURE cmsGetHeaderProfileID(hProfile: cmsHPROFILE; ProfileID: LPcmsUInt8Number); StdCall;
- // TODO:
- // FUNCTION cmsGetHeaderCreationDateTime(hProfile: cmsHPROFILE; struct tm *Dest): cmsBool; StdCall;
- FUNCTION cmsGetHeaderRenderingIntent(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall;
- PROCEDURE cmsSetHeaderFlags(hProfile: cmsHPROFILE; Flags: cmsUInt32Number); StdCall;
- FUNCTION cmsGetHeaderManufacturer(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall;
- PROCEDURE cmsSetHeaderManufacturer(hProfile: cmsHPROFILE; manufacturer: cmsUInt32Number ); StdCall;
- FUNCTION cmsGetHeaderModel(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall;
- PROCEDURE cmsSetHeaderModel(hProfile: cmsHPROFILE; model: cmsUInt32Number ); StdCall;
- PROCEDURE cmsSetHeaderAttributes(hProfile: cmsHPROFILE; Flags: cmsUInt64Number); StdCall;
- PROCEDURE cmsSetHeaderProfileID(hProfile: cmsHPROFILE; ProfileID: LPcmsUInt8Number); StdCall;
- PROCEDURE cmsSetHeaderRenderingIntent(hProfile: cmsHPROFILE; RenderingIntent: cmsUInt32Number ); StdCall;
- FUNCTION cmsGetPCS(hProfile: cmsHPROFILE):cmsColorSpaceSignature; StdCall;
- PROCEDURE cmsSetPCS(hProfile: cmsHPROFILE; pcs: cmsColorSpaceSignature); StdCall;
- FUNCTION cmsGetColorSpace(hProfile: cmsHPROFILE): cmsColorSpaceSignature; StdCall;
- PROCEDURE cmsSetColorSpace(hProfile: cmsHPROFILE; sig: cmsColorSpaceSignature); StdCall;
- FUNCTION cmsGetDeviceClass(hProfile: cmsHPROFILE): cmsProfileClassSignature; StdCall;
- PROCEDURE cmsSetDeviceClass(hProfile: cmsHPROFILE; sig: cmsProfileClassSignature); StdCall;
- PROCEDURE cmsSetProfileVersion(hProfile: cmsHPROFILE; Version: cmsFloat64Number); StdCall;
- FUNCTION cmsGetProfileVersion(hProfile: cmsHPROFILE): cmsFloat64Number; StdCall;
- FUNCTION cmsGetEncodedICCversion(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall;
- PROCEDURE cmsSetEncodedICCversion(hProfile: cmsHPROFILE; Version: cmsUInt32Number); StdCall;
- Const
- // How profiles may be used
- LCMS_USED_AS_INPUT = 0;
- LCMS_USED_AS_OUTPUT = 1;
- LCMS_USED_AS_PROOF = 2;
- FUNCTION cmsIsIntentSupported(hProfile: cmsHPROFILE; Intent: cmsUInt32Number; UsedDirection: cmsUInt32Number): cmsBool; StdCall;
- FUNCTION cmsIsMatrixShaper(hProfile: cmsHPROFILE): cmsBool; StdCall;
- FUNCTION cmsIsCLUT(hProfile: cmsHPROFILE; Intent: cmsUInt32Number; UsedDirection: cmsUInt32Number): cmsBool; StdCall;
- // Translate form/to our notation to ICC
- FUNCTION _cmsICCcolorSpace(OurNotation: Integer): cmsColorSpaceSignature; StdCall;
- FUNCTION _cmsLCMScolorSpace(ProfileSpace: cmsColorSpaceSignature): Integer; StdCall;
- FUNCTION cmsChannelsOf( ColorSpace: cmsColorSpaceSignature): cmsUInt32Number; StdCall;
- // Build a suitable formatter for the colorspace of this profile
- FUNCTION cmsFormatterForColorspaceOfProfile(hProfile: cmsHPROFILE; nBytes: cmsUInt32Number; lIsFloat: cmsBool): cmsUInt32Number; StdCall;
- FUNCTION cmsFormatterForPCSOfProfile(hProfile: cmsHPROFILE; nBytes: cmsUInt32Number; lIsFloat: cmsBool): cmsUInt32Number; StdCall;
- Type
- // Localized info
- cmsInfoType = (
- cmsInfoDescription = 0,
- cmsInfoManufacturer = 1,
- cmsInfoModel = 2,
- cmsInfoCopyright = 3
- );
- FUNCTION cmsGetProfileInfo(hProfile: cmsHPROFILE; Info: cmsInfoType; LanguageCode, CountryCode: PAnsiChar;
- Buffer: PWChar; BufferSize: cmsUInt32Number): cmsUInt32Number; StdCall;
- FUNCTION cmsGetProfileInfoASCII(hProfile: cmsHPROFILE; Info: cmsInfoType; LanguageCode, CountryCode: PAnsiChar;
- Buffer: PAnsiChar; BufferSize: cmsUInt32Number): cmsUInt32Number; StdCall;
- // IO handlers ----------------------------------------------------------------------------------------------------------
- Type
- LPcmsIOHANDLER = Pointer;
- FUNCTION cmsOpenIOhandlerFromFile(ContextID: cmsContext; FileName, AccessMode: PAnsiChar): LPcmsIOHANDLER; StdCall;
- // FUNCTION cmsOpenIOhandlerFromStream(ContextID: cmsContext; FILE* Stream): LPcmsIOHANDLER; StdCall;
- FUNCTION cmsOpenIOhandlerFromMem(ContextID: cmsContext; Buffer: Pointer; size: cmsUInt32Number; AccessMode: PAnsiChar): LPcmsIOHANDLER; StdCall;
- FUNCTION cmsOpenIOhandlerFromNULL(ContextID: cmsContext): LPcmsIOHANDLER; StdCall;
- FUNCTION cmsCloseIOhandler(io: LPcmsIOHANDLER): cmsBool; StdCall;
- // MD5 message digest --------------------------------------------------------------------------------------------------
- FUNCTION cmsMD5computeID(hProfile: cmsHPROFILE): cmsBool; StdCall;
- // Profile high level functions ------------------------------------------------------------------------------------------
- FUNCTION cmsOpenProfileFromFile(ICCProfile : PAnsiChar; sAccess: PAnsiChar): cmsHPROFILE; StdCall;
- FUNCTION cmsOpenProfileFromFileTHR(ContextID: cmsContext; ICCProfile, sAccess: PAnsiChar): cmsHPROFILE; StdCall;
- // FUNCTION CMSEXPORT cmsOpenProfileFromStream(FILE* ICCProfile, const char* sAccess): cmsHPROFILE; StdCall;
- // FUNCTION CMSEXPORT cmsOpenProfileFromStreamTHR(ContextID: cmsContext; FILE* ICCProfile, const char* sAccess): cmsHPROFILE; StdCall;
- FUNCTION cmsOpenProfileFromMem(MemPtr: Pointer; dwSize: cmsUInt32Number): cmsHPROFILE; StdCall;
- FUNCTION cmsOpenProfileFromMemTHR(ContextID: cmsContext; MemPtr: Pointer; dwSize: cmsUInt32Number): cmsHPROFILE; StdCall;
- FUNCTION cmsOpenProfileFromIOhandlerTHR(ContextID: cmsContext; io: LPcmsIOHANDLER): cmsHPROFILE; StdCall;
- FUNCTION cmsCloseProfile(hProfile: cmsHPROFILE): cmsBool; StdCall;
- FUNCTION cmsSaveProfileToFile(hProfile: cmsHPROFILE; FileName: PAnsiChar): cmsBool; StdCall;
- // FUNCTION CMSEXPORT cmsSaveProfileToStream(hProfile: cmsHPROFILE, FILE* Stream): cmsBool; StdCall;
- FUNCTION cmsSaveProfileToMem(hProfile: cmsHPROFILE; MemPtr: Pointer; BytesNeeded: LPcmsUInt32Number): cmsBool; StdCall;
- FUNCTION cmsSaveProfileToIOhandler(hProfile: cmsHPROFILE; io: LPcmsIOHANDLER):cmsUInt32Number; StdCall;
- // Predefined virtual profiles ------------------------------------------------------------------------------------------
- FUNCTION cmsCreateRGBProfileTHR(ContextID: cmsContext;
- WhitePoint: LPcmsCIExyY;
- Primaries: LPcmsCIExyYTRIPLE;
- TransferFunction: LPLPcmsToneCurveArray): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateRGBProfile(WhitePoint: LPcmsCIExyY;
- Primaries: LPcmsCIExyYTRIPLE;
- TransferFunction: LPLPcmsToneCurveArray): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateGrayProfileTHR(ContextID: cmsContext;
- WhitePoint: LPcmsCIExyY;
- TransferFunction: LPcmsToneCurve): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateGrayProfile(WhitePoint: LPcmsCIExyY;
- TransferFunction: LPcmsToneCurve): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateLinearizationDeviceLinkTHR(ContextID: cmsContext;
- ColorSpace: cmsColorSpaceSignature;
- TransferFunctions: LPLPcmsToneCurveArray): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateLinearizationDeviceLink(ColorSpace: cmsColorSpaceSignature;
- TransferFunctions: LPLPcmsToneCurveArray): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateInkLimitingDeviceLinkTHR(ContextID: cmsContext;
- ColorSpace: cmsColorSpaceSignature; Limit: cmsFloat64Number): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateInkLimitingDeviceLink(ColorSpace: cmsColorSpaceSignature; Limit: cmsFloat64Number): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateLab2ProfileTHR(ContextID: cmsContext; WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateLab2Profile(WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateLab4ProfileTHR(ContextID: cmsContext; WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateLab4Profile(WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateXYZProfileTHR(ContextID: cmsContext): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateXYZProfile: cmsHPROFILE; StdCall;
- FUNCTION cmsCreate_sRGBProfileTHR(ContextID: cmsContext): cmsHPROFILE; StdCall;
- FUNCTION cmsCreate_sRGBProfile: cmsHPROFILE; StdCall;
- FUNCTION cmsCreateBCHSWabstractProfileTHR(ContextID: cmsContext;
- nLUTPoints: Integer;
- Bright,
- Contrast,
- Hue,
- Saturation: cmsFloat64Number;
- TempSrc,
- TempDest: Integer): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateBCHSWabstractProfile( nLUTPoints: Integer;
- Bright,
- Contrast,
- Hue,
- Saturation: cmsFloat64Number;
- TempSrc,
- TempDest: Integer): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateNULLProfileTHR(ContextID: cmsContext): cmsHPROFILE; StdCall;
- FUNCTION cmsCreateNULLProfile: cmsHPROFILE; StdCall;
- // Converts a transform to a devicelink profile
- FUNCTION cmsTransform2DeviceLink(hTransform: cmsHTRANSFORM; Version: cmsFloat64Number; dwFlags: cmsUInt32Number): cmsHPROFILE; StdCall;
- // Intents ----------------------------------------------------------------------------------------------
- Const
- // ICC Intents
- INTENT_PERCEPTUAL = 0;
- INTENT_RELATIVE_COLORIMETRIC = 1;
- INTENT_SATURATION = 2;
- INTENT_ABSOLUTE_COLORIMETRIC = 3;
- // Non-ICC intents
- INTENT_PRESERVE_K_ONLY_PERCEPTUAL = 10;
- INTENT_PRESERVE_K_ONLY_RELATIVE_COLORIMETRIC = 11;
- INTENT_PRESERVE_K_ONLY_SATURATION = 12;
- INTENT_PRESERVE_K_PLANE_PERCEPTUAL = 13;
- INTENT_PRESERVE_K_PLANE_RELATIVE_COLORIMETRIC = 14;
- INTENT_PRESERVE_K_PLANE_SATURATION = 15;
- Type
- LPPAnsiChar = ^PAnsiChar;
- // Call with NULL as parameters to get the intent count
- FUNCTION cmsGetSupportedIntents(nMax: cmsUInt32Number; Codes: LPcmsUInt32Number; Descriptions: LPPAnsiChar): cmsUInt32Number; StdCall;
- Const
- // Flags
- cmsFLAGS_NOCACHE = $0040; // Inhibit 1-pixel cache
- cmsFLAGS_NOOPTIMIZE = $0100; // Inhibit optimizations
- cmsFLAGS_NULLTRANSFORM = $0200; // Don't transform anyway
- // Proofing flags
- cmsFLAGS_GAMUTCHECK = $1000; // Out of Gamut alarm
- cmsFLAGS_SOFTPROOFING = $4000; // Do softproofing
- // Misc
- cmsFLAGS_BLACKPOINTCOMPENSATION = $2000;
- cmsFLAGS_NOWHITEONWHITEFIXUP = $0004; // Don't fix scum dot
- cmsFLAGS_HIGHRESPRECALC = $0400; // Use more memory to give better accuracy
- cmsFLAGS_LOWRESPRECALC = $0800; // Use less memory to minimize resources
- // For devicelink creation
- cmsFLAGS_8BITS_DEVICELINK = $0008; // Create 8 bits devicelinks
- cmsFLAGS_GUESSDEVICECLASS = $0020; // Guess device class (for transform2devicelink)
- cmsFLAGS_KEEP_SEQUENCE = $0080; // Keep profile sequence for devicelink creation
- // Specific to a particular optimizations
- cmsFLAGS_FORCE_CLUT = $0002; // Force CLUT optimization
- cmsFLAGS_CLUT_POST_LINEARIZATION = $0001; // create postlinearization tables if possible
- cmsFLAGS_CLUT_PRE_LINEARIZATION = $0010; // create prelinearization tables if possible
- // CRD special
- cmsFLAGS_NODEFAULTRESOURCEDEF = $01000000;
- // Fine-tune control over number of gridpoints
- FUNCTION cmsFLAGS_GRIDPOINTS(n: Integer): Integer;
- // Transforms ---------------------------------------------------------------------------------------------------
- type
- LPcmsHPROFILEArray = ^cmsHPROFILEArray;
- cmsHPROFILEArray = array[0..0] of cmsHPROFILE;
- LPcmsBoolArray = ^cmsBoolArray;
- cmsBoolArray = array[0..0] of cmsBool;
- FUNCTION cmsCreateTransformTHR(ContextID: cmsContext;
- Input: cmsHPROFILE;
- InputFormat: cmsUInt32Number;
- Output: cmsHPROFILE;
- OutputFormat: cmsUInt32Number;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall;
- FUNCTION cmsCreateTransform(Input: cmsHPROFILE;
- InputFormat: cmsUInt32Number;
- Output: cmsHPROFILE;
- OutputFormat: cmsUInt32Number;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall;
- FUNCTION cmsCreateProofingTransformTHR(ContextID: cmsContext;
- Input: cmsHPROFILE;
- InputFormat: cmsUInt32Number;
- Output: cmsHPROFILE;
- OutputFormat: cmsUInt32Number;
- Proofing: cmsHPROFILE;
- Intent: cmsUInt32Number;
- ProofingIntent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall;
- FUNCTION cmsCreateProofingTransform(Input: cmsHPROFILE;
- InputFormat: cmsUInt32Number;
- Output: cmsHPROFILE;
- OutputFormat: cmsUInt32Number;
- Proofing: cmsHPROFILE;
- Intent: cmsUInt32Number;
- ProofingIntent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall;
- FUNCTION cmsCreateMultiprofileTransformTHR(ContextID: cmsContext;
- hProfiles: LPcmsHPROFILEArray;
- nProfiles: cmsUInt32Number;
- InputFormat: cmsUInt32Number;
- OutputFormat: cmsUInt32Number;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall;
- FUNCTION cmsCreateMultiprofileTransform( hProfiles: LPcmsHPROFILEArray;
- nProfiles: cmsUInt32Number;
- InputFormat: cmsUInt32Number;
- OutputFormat: cmsUInt32Number;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall;
- FUNCTION cmsCreateExtendedTransform(ContextID: cmsContext;
- nProfiles: cmsUInt32Number;
- hProfiles: LPcmsHPROFILEArray;
- BPC: LPcmsBoolArray;
- Intents: LPcmsUInt32NumberArray;
- AdaptationStates: LPcmsFloat64NumberArray;
- hGamutProfile: cmsHPROFILE;
- nGamutPCSposition: cmsUInt32Number;
- InputFormat,
- OutputFormat: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall;
- PROCEDURE cmsDeleteTransform(hTransform: cmsHTRANSFORM); StdCall;
- PROCEDURE cmsDoTransform(Transform: cmsHTRANSFORM; InputBuffer, OutputBuffer: Pointer; size: cmsUInt32Number); StdCall;
- PROCEDURE cmsDoTransformStride(Transform: cmsHTRANSFORM; InputBuffer, OutputBuffer: Pointer; size: cmsUInt32Number; stride: cmsUInt32Number); StdCall;
- PROCEDURE cmsSetAlarmCodes( NewAlarm: LPcmsUInt16NumberArray); StdCall;
- PROCEDURE cmsGetAlarmCodes(NewAlarm: LPcmsUInt16NumberArray); StdCall;
- // Adaptation state for absolute colorimetric intent
- FUNCTION cmsSetAdaptationState(d: cmsFloat64Number):cmsFloat64Number; StdCall;
- // Grab the ContextID from an open transform. Returns NULL if a NULL transform is passed
- FUNCTION cmsGetTransformContextID(hTransform: cmsHTRANSFORM):cmsContext; StdCall;
- // For backwards compatibility
- FUNCTION cmsChangeBuffersFormat(hTransform: cmsHTRANSFORM; InputFormat, OutputFormat: cmsUInt32Number): cmsBool; StdCall;
- // PostScript ColorRenderingDictionary and ColorSpaceArray ----------------------------------------------------
- Type
- cmsPSResourceType = (cmsPS_RESOURCE_CSA, cmsPS_RESOURCE_CRD ) ;
- // lcms2 unified method to access postscript color resources
- FUNCTION cmsGetPostScriptColorResource(ContextID: cmsContext; RType: cmsPSResourceType;
- hProfile: cmsHPROFILE;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number;
- io: LPcmsIOHANDLER): cmsUInt32Number; StdCall;
- FUNCTION cmsGetPostScriptCSA(ContextID: cmsContext; hProfile: cmsHPROFILE; Intent: cmsUInt32Number; dwFlags: cmsUInt32Number; Buffer: Pointer; dwBufferLen: cmsUInt32Number ): cmsUInt32Number; StdCall;
- FUNCTION cmsGetPostScriptCRD(ContextID: cmsContext; hProfile: cmsHPROFILE; Intent: cmsUInt32Number; dwFlags: cmsUInt32Number; Buffer: Pointer; dwBufferLen: cmsUInt32Number): cmsUInt32Number; StdCall;
- // IT8.7 / CGATS.17-20$ handling -----------------------------------------------------------------------------
- // CGATS.13 parser
- FUNCTION cmsIT8Alloc: cmsHANDLE; StdCall;
- PROCEDURE cmsIT8Free(hIT8: cmsHANDLE); StdCall;
- // Tables
- FUNCTION cmsIT8TableCount(hIT8: cmsHANDLE): Integer; StdCall;
- FUNCTION cmsIT8SetTable(hIT8: cmsHANDLE; nTable: Integer): Integer; StdCall;
- // Persistence
- FUNCTION cmsIT8LoadFromFile(cFileName: PAnsiChar): cmsHANDLE; StdCall;
- FUNCTION cmsIT8LoadFromMem(Ptr: Pointer; size :DWord): cmsHANDLE; StdCall;
- FUNCTION cmsIT8SaveToFile(hIT8: cmsHANDLE; cFileName: PAnsiChar): cmsBool; StdCall;
- FUNCTION cmsIT8SaveToMem(hIT8: cmsHANDLE; MemPtr: Pointer; BytesNeeded: LPcmsUInt32Number): cmsBool; StdCall;
- // Properties
- FUNCTION cmsIT8GetSheetType(hIT8: cmsHANDLE): PAnsiChar; StdCall;
- FUNCTION cmsIT8SetSheetType(hIT8: cmsHANDLE; TheType: PAnsiChar): cmsBool; StdCall;
- FUNCTION cmsIT8SetComment(hIT8: cmsHANDLE; cComment: PAnsiChar): cmsBool; StdCall;
- FUNCTION cmsIT8SetPropertyStr(hIT8: cmsHANDLE; cProp, Str: PAnsiChar): cmsBool; StdCall;
- FUNCTION cmsIT8SetPropertyDbl(hIT8: cmsHANDLE; cProp: PAnsiChar; Val: Double): cmsBool; StdCall;
- FUNCTION cmsIT8SetPropertyHex(hIT8: cmsHANDLE; cProp: PAnsiChar; Val: Integer): cmsBool; StdCall;
- FUNCTION cmsIT8SetPropertyUncooked(hIT8: cmsHANDLE; Key, Buffer: PAnsiChar): cmsBool; StdCall;
- FUNCTION cmsIT8GetProperty(hIT8: cmsHANDLE; cProp: PAnsiChar): PAnsiChar; StdCall;
- FUNCTION cmsIT8GetPropertyDbl(hIT8: cmsHANDLE; cProp: PAnsiChar): Double; StdCall;
- FUNCTION cmsIT8EnumProperties(hIT8: cmsHANDLE; var PropertyNames: LPPAnsiChar): Integer; StdCall;
- // Datasets
- FUNCTION cmsIT8GetDataRowCol(hIT8: cmsHANDLE; row, col: Integer): PAnsiChar; StdCall;
- FUNCTION cmsIT8GetDataRowColDbl(hIT8: cmsHANDLE; row, col: Integer): Double; StdCall;
- FUNCTION cmsIT8SetDataRowCol(hIT8: cmsHANDLE; row, col: Integer; Val: PAnsiChar): cmsBool; StdCall;
- FUNCTION cmsIT8SetDataRowColDbl(hIT8: cmsHANDLE; row, col: Integer; Val: Double): cmsBool; StdCall;
- FUNCTION cmsIT8GetData(hIT8: cmsHANDLE; cPatch, cSample: PAnsiChar): PAnsiChar; StdCall;
- FUNCTION cmsIT8GetDataDbl(hIT8: cmsHANDLE;cPatch, cSample: PAnsiChar): Double; StdCall;
- FUNCTION cmsIT8SetData(hIT8: cmsHANDLE; cPatch, cSample, Val: PAnsiChar): cmsBool; StdCall;
- FUNCTION cmsIT8SetDataDbl(hIT8: cmsHANDLE; cPatch, cSample: PAnsiChar; Val: Double): cmsBool; StdCall;
- FUNCTION cmsIT8SetDataFormat(hIT8: cmsHANDLE; n: Integer; Sample: PAnsiChar): cmsBool; StdCall;
- FUNCTION cmsIT8EnumDataFormat(hIT8: cmsHANDLE; var SampleNames: LPPAnsiChar): Integer; StdCall;
- FUNCTION cmsIT8GetPatchName(hIT8: cmsHANDLE; nPatch: Integer; Buffer: PAnsiChar): PAnsiChar; StdCall;
- // The LABEL extension
- FUNCTION cmsIT8SetTableByLabel(hIT8: cmsHANDLE; cSet, cField, ExpectedType: PAnsiChar): Integer; StdCall;
- FUNCTION cmsIT8FindDataFormat(hIT8: cmsHANDLE; cSample: PAnsiChar): Integer; StdCall;
- // Formatter for double
- PROCEDURE cmsIT8DefineDblFormat(hIT8: cmsHANDLE; Formatter: PAnsiChar); StdCall;
- // Gamut boundary description routines ------------------------------------------------------------------------------
- FUNCTION cmsGBDAlloc(ContextID: cmsContext):cmsHANDLE; StdCall;
- PROCEDURE cmsGBDFree(hGBD: cmsHANDLE); StdCall;
- FUNCTION cmsGDBAddPoint(hGBD: cmsHANDLE; Lab: LPcmsCIELab): cmsBool; StdCall;
- FUNCTION cmsGDBCompute(hGDB: cmsHANDLE; dwFlags: cmsUInt32Number): cmsBool; StdCall;
- FUNCTION cmsGDBCheckPoint(hGBD: cmsHANDLE; Lab: LPcmsCIELab): cmsBool; StdCall;
- // Feature detection ----------------------------------------------------------------------------------------------
- // Estimate the black point
- FUNCTION cmsDetectBlackPoint( BlackPoint: LPcmsCIEXYZ; hProfile: cmsHPROFILE; Intent: cmsUInt32Number; dwFlags: cmsUInt32Number): cmsBool; StdCall;
- FUNCTION cmsDetectDestinationBlackPoint( BlackPoint: LPcmsCIEXYZ; hProfile: cmsHPROFILE; Intent: cmsUInt32Number; dwFlags: cmsUInt32Number): cmsBool; StdCall;
- // Estimate total area coverage
- FUNCTION cmsDetectTAC(hProfile: cmsHPROFILE): cmsFloat64Number; StdCall;
- // Estimate profile gamma
- FUNCTION cmsDetectRGBProfileGamma(hProfile: cmsHPROFILE): cmsFloat64Number; StdCall;
- // Poor man's gamut mapping
- FUNCTION cmsDesaturateLab(Lab: LPcmsCIELab; amax, amin, bmax, bmin: cmsFloat64Number): cmsBool; StdCall;
- IMPLEMENTATION
- FUNCTION FLOAT_SH(a: cmsUInt32Number): cmsUInt32Number; begin FLOAT_SH := ((a) shl 22) end;
- FUNCTION OPTIMIZED_SH(s: cmsUInt32Number): cmsUInt32Number; begin OPTIMIZED_SH := ((s) shl 21) end;
- FUNCTION COLORSPACE_SH(s: cmsUInt32Number):cmsUInt32Number; begin COLORSPACE_SH := ((s) shl 16) end;
- FUNCTION SWAPFIRST_SH(s: cmsUInt32Number):cmsUInt32Number; begin SWAPFIRST_SH := ((s) shl 14) end;
- FUNCTION FLAVOR_SH(s: cmsUInt32Number):cmsUInt32Number; begin FLAVOR_SH := ((s) shl 13) end;
- FUNCTION PLANAR_SH(p: cmsUInt32Number):cmsUInt32Number; begin PLANAR_SH := ((p) shl 12) end;
- FUNCTION ENDIAN16_SH(e: cmsUInt32Number):cmsUInt32Number; begin ENDIAN16_SH := ((e) shl 11) end;
- FUNCTION DOSWAP_SH(e: cmsUInt32Number):cmsUInt32Number; begin DOSWAP_SH := ((e) shl 10) end;
- FUNCTION EXTRA_SH(e: cmsUInt32Number):cmsUInt32Number; begin EXTRA_SH := ((e) shl 7) end;
- FUNCTION CHANNELS_SH(c: cmsUInt32Number):cmsUInt32Number; begin CHANNELS_SH := ((c) shl 3) end;
- FUNCTION BYTES_SH(b: cmsUInt32Number):cmsUInt32Number; begin BYTES_SH := (b) end;
- FUNCTION T_FLOAT(a: cmsUInt32Number): cmsUInt32Number; begin T_FLOAT := (((a) shr 22) and 1) end;
- FUNCTION T_OPTIMIZED(o: cmsUInt32Number): cmsUInt32Number; begin T_OPTIMIZED := (((o) shr 21) and 1) end;
- FUNCTION T_COLORSPACE(s: cmsUInt32Number): cmsUInt32Number; begin T_COLORSPACE := (((s) shr 16) and 31) end;
- FUNCTION T_SWAPFIRST(s: cmsUInt32Number): cmsUInt32Number; begin T_SWAPFIRST := (((s) shr 14) and 1) end;
- FUNCTION T_FLAVOR(s: cmsUInt32Number): cmsUInt32Number; begin T_FLAVOR := (((s) shr 13) and 1) end;
- FUNCTION T_PLANAR(p: cmsUInt32Number): cmsUInt32Number; begin T_PLANAR := (((p) shr 12) and 1) end;
- FUNCTION T_ENDIAN16(e: cmsUInt32Number): cmsUInt32Number; begin T_ENDIAN16 := (((e) shr 11) and 1) end;
- FUNCTION T_DOSWAP(e: cmsUInt32Number): cmsUInt32Number; begin T_DOSWAP := (((e) shr 10) and 1) end;
- FUNCTION T_EXTRA(e: cmsUInt32Number): cmsUInt32Number; begin T_EXTRA := (((e) shr 7) and 7) end;
- FUNCTION T_CHANNELS(c: cmsUInt32Number): cmsUInt32Number; begin T_CHANNELS := (((c) shr 3) and 15) end;
- FUNCTION T_BYTES(b: cmsUInt32Number): cmsUInt32Number; begin T_BYTES := ((b) and 7) end;
- //
- FUNCTION cmsCreateContext(Plugin : Pointer; UserData : Pointer) : cmsContext; StdCall; external LCMS2_SO;
- PROCEDURE cmsDeleteContext(ContextID: cmsContext); StdCall; external LCMS2_SO;
- FUNCTION cmsDupContext(ContextID: cmsContext; NewUserData: Pointer): cmsContext; StdCall; external LCMS2_SO;
- FUNCTION cmsGetContextUserData(ContextID: cmsContext): Pointer; StdCall; external LCMS2_SO;
- FUNCTION cmsPlugin(Plugin: Pointer): cmsBool; StdCall; external LCMS2_SO;
- PROCEDURE cmsUnregisterPlugins; StdCall; external LCMS2_SO;
- PROCEDURE cmsSetLogErrorHandler(Fn: cmsLogErrorHandlerFunction); StdCall; external LCMS2_SO;
- FUNCTION cmsD50_XYZ: LPcmsCIEXYZ; StdCall; external LCMS2_SO;
- FUNCTION cmsD50_xyY: LPcmsCIExyY; StdCall; external LCMS2_SO;
- PROCEDURE cmsXYZ2xyY(Dest: LPcmsCIExyY; Source: LPcmsCIEXYZ); StdCall; external LCMS2_SO;
- PROCEDURE cmsxyY2XYZ(Dest: LPcmsCIEXYZ; Source: LPcmsCIExyY); StdCall; external LCMS2_SO;
- PROCEDURE cmsLab2XYZ(WhitePoint: LPcmsCIEXYZ; xyz: LPcmsCIEXYZ; Lab: LPcmsCIELab); StdCall; external LCMS2_SO;
- PROCEDURE cmsXYZ2Lab(WhitePoint: LPcmsCIEXYZ; Lab: LPcmsCIELab; xyz: LPcmsCIEXYZ); StdCall; external LCMS2_SO;
- PROCEDURE cmsLab2LCh(LCh: LPcmsCIELCh; Lab: LPcmsCIELab); StdCall; external LCMS2_SO;
- PROCEDURE cmsLCh2Lab(Lab: LPcmsCIELab; LCh: LPcmsCIELCh); StdCall; external LCMS2_SO;
- PROCEDURE cmsLabEncoded2Float(Lab: LPcmsCIELab; wLab: Pointer); StdCall; external LCMS2_SO;
- PROCEDURE cmsLabEncoded2FloatV2(Lab: LPcmsCIELab; wLab: Pointer); StdCall; external LCMS2_SO;
- PROCEDURE cmsFloat2LabEncoded(wLab: Pointer; Lab: LPcmsCIELab); StdCall; external LCMS2_SO;
- PROCEDURE cmsFloat2LabEncodedV2(wLab: Pointer; Lab: LPcmsCIELab); StdCall; external LCMS2_SO;
- PROCEDURE cmsXYZEncoded2Float(fxyz : LPcmsCIEXYZ; XYZ: Pointer); StdCall; external LCMS2_SO;
- PROCEDURE cmsFloat2XYZEncoded(XYZ: Pointer; fXYZ: LPcmsCIEXYZ); StdCall; external LCMS2_SO;
- FUNCTION cmsDeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall; external LCMS2_SO;
- FUNCTION cmsCIE94DeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall; external LCMS2_SO;
- FUNCTION cmsBFDdeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall; external LCMS2_SO;
- FUNCTION cmsCMCdeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall; external LCMS2_SO;
- FUNCTION cmsCIE2000DeltaE(Lab1, Lab2: LPcmsCIELab; Kl, Kc, Kh: Double): Double; StdCall; external LCMS2_SO;
- FUNCTION cmsWhitePointFromTemp(var WhitePoint: cmsCIExyY; TempK: cmsFloat64Number) : cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsTempFromWhitePoint(var TeampK: cmsFloat64Number; var WhitePoint: cmsCIExyY) : cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsAdaptToIlluminant(Result: LPcmsCIEXYZ; SourceWhitePt: LPcmsCIEXYZ;
- Illuminant: LPcmsCIEXYZ; Value: LPcmsCIEXYZ): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsCIECAM02Init(pVC : LPcmsViewingConditions ) : Pointer; StdCall; external LCMS2_SO;
- PROCEDURE cmsCIECAM02Done(hModel : Pointer); StdCall; external LCMS2_SO;
- PROCEDURE cmsCIECAM02Forward(hModel: Pointer; pIn: LPcmsCIEXYZ; pOut: LPcmsJCh ); StdCall; external LCMS2_SO;
- PROCEDURE cmsCIECAM02Reverse(hModel: Pointer; pIn: LPcmsJCh; pOut: LPcmsCIEXYZ ); StdCall; external LCMS2_SO;
- FUNCTION cmsBuildSegmentedToneCurve(ContextID: cmsContext; nSegments: cmsInt32Number; Segments: LPcmsCurveSegmentArray): LPcmsToneCurve; StdCall; external LCMS2_SO;
- FUNCTION cmsBuildParametricToneCurve(ContextID: cmsContext; CType: cmsInt32Number; Params: LPcmsFloat64NumberArray): LPcmsToneCurve; StdCall; external LCMS2_SO;
- FUNCTION cmsBuildGamma(ContextID: cmsContext; Gamma: cmsFloat64Number): LPcmsToneCurve; StdCall; external LCMS2_SO;
- FUNCTION cmsBuildTabulatedToneCurve16(ContextID: cmsContext; nEntries: cmsInt32Number; values: LPcmsUInt16NumberArray): LPcmsToneCurve; StdCall; external LCMS2_SO;
- FUNCTION cmsBuildTabulatedToneCurveFloat(ContextID: cmsContext; nEntries: cmsUInt32Number; values: LPcmsFloat32NumberArray): LPcmsToneCurve; StdCall; external LCMS2_SO;
- PROCEDURE cmsFreeToneCurve(Curve: LPcmsToneCurve); StdCall; external LCMS2_SO;
- PROCEDURE cmsFreeToneCurveTriple(Curve: LPLPcmsToneCurveArray); StdCall; external LCMS2_SO;
- FUNCTION cmsDupToneCurve(Src: LPcmsToneCurve): LPcmsToneCurve; StdCall; external LCMS2_SO;
- FUNCTION cmsReverseToneCurve(InGamma: LPcmsToneCurve): LPcmsToneCurve; StdCall; external LCMS2_SO;
- FUNCTION cmsReverseToneCurveEx(nResultSamples: cmsInt32Number; InGamma: LPcmsToneCurve): LPcmsToneCurve; StdCall; external LCMS2_SO;
- FUNCTION cmsJoinToneCurve(ContextID: cmsContext; X, Y: LPcmsToneCurve; nPoints: cmsUInt32Number ): LPcmsToneCurve; StdCall; external LCMS2_SO;
- FUNCTION cmsSmoothToneCurve(Tab: LPcmsToneCurve; lambda: cmsFloat64Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsEvalToneCurveFloat(Curve: LPcmsToneCurve; v: cmsFloat32Number):cmsFloat32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsEvalToneCurve16(Curve: LPcmsToneCurve; v:cmsUInt16Number):cmsUInt16Number; StdCall; external LCMS2_SO;
- FUNCTION cmsIsToneCurveMultisegment(InGamma: LPcmsToneCurve):cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIsToneCurveLinear(Curve: LPcmsToneCurve):cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIsToneCurveMonotonic(t: LPcmsToneCurve):cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIsToneCurveDescending(t: LPcmsToneCurve):cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsGetToneCurveParametricType(t: LPcmsToneCurve):cmsInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsEstimateGamma(t: LPcmsToneCurve; Precision:cmsFloat64Number):cmsFloat64Number; StdCall; external LCMS2_SO;
- FUNCTION cmsGetToneCurveEstimatedTableEntries(t: LPcmsToneCurve): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsGetToneCurveEstimatedTable(t: LPcmsToneCurve): LPcmsUInt16Number; StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineAlloc(ContextID: cmsContext; InputChannels, OutputChannels: cmsUInt32Number): LPcmsPipeline; StdCall; external LCMS2_SO;
- PROCEDURE cmsPipelineFree(lut: LPcmsPipeline); StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineDup(Orig: LPcmsPipeline): LPcmsPipeline; StdCall; external LCMS2_SO;
- FUNCTION cmsGetPipelineContextID(lut: LPcmsPipeline) : cmsContext; StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineInputChannels(lut: LPcmsPipeline): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineOutputChannels(lut: LPcmsPipeline): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineStageCount(lut: LPcmsPipeline): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineGetPtrToFirstStage(lut: LPcmsPipeline): LPcmsStage; StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineGetPtrToLastStage(lut: LPcmsPipeline): LPcmsStage; StdCall; external LCMS2_SO;
- PROCEDURE cmsPipelineEval16(Inv, Outv: LPcmsUInt16NumberArray; lut: LPcmsPipeline); StdCall; external LCMS2_SO;
- PROCEDURE cmsPipelineEvalFloat(Inv, Outv: LPcmsFloat32NumberArray; lut: LPcmsPipeline); StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineEvalReverseFloat(Target, Result, Hint: LPcmsFloat32NumberArray; lut: LPcmsPipeline): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineCat(l1, l2: LPcmsPipeline): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsPipelineSetSaveAs8bitsFlag(lut: LPcmsPipeline; On: cmsBool): cmsBool; StdCall; external LCMS2_SO;
- PROCEDURE cmsPipelineInsertStage(lut: LPcmsPipeline; loc: cmsStageLoc; mpe: LPcmsStage); StdCall; external LCMS2_SO;
- PROCEDURE cmsPipelineUnlinkStage(lut: LPcmsPipeline; loc: cmsStageLoc; mpe: LPLPcmsStage); StdCall; external LCMS2_SO;
- FUNCTION cmsStageAllocIdentity(ContextID: cmsContext; nChannels: cmsUInt32Number): LPcmsStage; StdCall; external LCMS2_SO;
- FUNCTION cmsStageAllocToneCurves(ContextID: cmsContext; nChannels: cmsUInt32Number; Curves: LPLPcmsToneCurveArray): LPcmsStage; StdCall; external LCMS2_SO;
- FUNCTION cmsStageAllocMatrix(ContextID: cmsContext; Rows, Cols: cmsUInt32Number; Matrix, Offset: LPcmsFloat64NumberArray): LPcmsStage; StdCall; external LCMS2_SO;
- FUNCTION cmsStageAllocCLut16bit(ContextID: cmsContext; nGridPoints: cmsUInt32Number; inputChan, outputChan: cmsUInt32Number; Table: LPcmsUInt16NumberArray): LPcmsStage; StdCall; external LCMS2_SO;
- FUNCTION cmsStageAllocCLutFloat(ContextID: cmsContext; nGridPoints: cmsUInt32Number; inputChan, outputChan: cmsUInt32Number; Table: LPcmsFloat32NumberArray): LPcmsStage; StdCall; external LCMS2_SO;
- FUNCTION cmsStageAllocCLut16bitGranular(ContextID: cmsContext; nGridPoints: LPcmsUInt32NumberArray; inputChan, outputChan: cmsUInt32Number; Table: LPcmsUInt16NumberArray): LPcmsStage; StdCall; external LCMS2_SO;
- FUNCTION cmsStageAllocCLutFloatGranular(ContextID: cmsContext; nGridPoints: LPcmsUInt32NumberArray; inputChan, outputChan: cmsUInt32Number; Table: LPcmsFloat32NumberArray): LPcmsStage; StdCall; external LCMS2_SO;
- FUNCTION cmsStageDup(mpe: LPcmsStage): LPcmsStage; StdCall; external LCMS2_SO;
- PROCEDURE cmsStageFree(mpe: LPcmsStage); StdCall; external LCMS2_SO;
- FUNCTION cmsStageNext(mpe: LPcmsStage): LPcmsStage; StdCall; external LCMS2_SO;
- FUNCTION cmsStageInputChannels(mpe: LPcmsStage): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsStageOutputChannels(mpe: LPcmsStage): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsStageType(mpe: LPcmsStage): cmsStageSignature; StdCall; external LCMS2_SO;
- FUNCTION cmsStageData(mpe: LPcmsStage): Pointer; StdCall; external LCMS2_SO;
- FUNCTION cmsStageSampleCLut16bit(mpe: LPcmsStage; Sampler: cmsSAMPLER16; Cargo: Pointer; dwFlags: cmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsStageSampleCLutFloat(mpe: LPcmsStage; Sampler: cmsSAMPLERFLOAT; Cargo: Pointer; dwFlags: cmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsSliceSpace16(nInputs: cmsUInt32Number; clutPoints: LPcmsUInt32NumberArray;
- Sampler: cmsSAMPLER16; Cargo: Pointer): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsSliceSpaceFloat(nInputs: cmsUInt32Number; clutPoints: LPcmsUInt32NumberArray;
- Sampler: cmsSAMPLERFLOAT; Cargo: Pointer): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsMLUalloc(ContextID: cmsContext; nItems: cmsUInt32Number): LPcmsMLU; StdCall; external LCMS2_SO;
- PROCEDURE cmsMLUfree(mlu: LPcmsMLU); StdCall; external LCMS2_SO;
- FUNCTION cmsMLUdup(mlu: LPcmsMLU): LPcmsMLU; StdCall; external LCMS2_SO;
- FUNCTION cmsMLUsetASCII(mlu: LPcmsMLU; LanguageCode, CountryCode, ASCIIString: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsMLUsetWide(mlu: LPcmsMLU; LanguageCode, CountryCode: PAnsiChar; WideString: PWChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsMLUgetASCII(mlu: LPcmsMLU; LanguageCode, CountryCode: PAnsiChar; Buffer: PAnsiChar; BufferSize: cmsUInt32Number): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsMLUgetWide(mlu: LPcmsMLU; LanguageCode, CountryCode: PAnsiChar; Buffer: PWChar; BufferSize: cmsUInt32Number): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsMLUgetTranslation(mlu: LPcmsMLU; LanguageCode, CountryCode, ObtainedLanguage, ObtainedCountry: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsAllocNamedColorList(ContextID: cmsContext; n, ColorantCount :cmsUInt32Number;
- Prefix, Suffix: PAnsiChar): LPcmsNAMEDCOLORLIST; StdCall; external LCMS2_SO;
- PROCEDURE cmsFreeNamedColorList(v: LPcmsNAMEDCOLORLIST); StdCall; external LCMS2_SO;
- FUNCTION cmsDupNamedColorList(v: LPcmsNAMEDCOLORLIST): LPcmsNAMEDCOLORLIST; StdCall; external LCMS2_SO;
- FUNCTION cmsAppendNamedColor(v: LPcmsNAMEDCOLORLIST; Name: PAnsiChar;
- PCS, Colorant : LPcmsUInt16NumberArray): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsNamedColorCount(v: LPcmsNAMEDCOLORLIST): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsNamedColorIndex(v: LPcmsNAMEDCOLORLIST; Name: PAnsiChar): cmsInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsNamedColorInfo(v: LPcmsNAMEDCOLORLIST; nColor : cmsUInt32Number;
- Name,Prefix, Suffix : PAnsiChar;
- PCS, Colorant : LPcmsUInt16NumberArray): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsGetNamedColorList(xform: cmsHTRANSFORM ): LPcmsNAMEDCOLORLIST; StdCall; external LCMS2_SO;
- FUNCTION cmsAllocProfileSequenceDescription(ContextID: cmsContext; n: cmsUInt32Number):LPcmsSEQ; StdCall; external LCMS2_SO;
- FUNCTION cmsDupProfileSequenceDescription(pseq: LPcmsSEQ):LPcmsSEQ; StdCall; external LCMS2_SO;
- PROCEDURE cmsFreeProfileSequenceDescription(pseq: LPcmsSEQ); StdCall; external LCMS2_SO;
- FUNCTION cmsDictAlloc(ContextID: cmsContext): cmsHANDLE; StdCall; external LCMS2_SO;
- PROCEDURE cmsDictFree(hDict: cmsHANDLE); StdCall; external LCMS2_SO;
- FUNCTION cmsDictDup(hDict: cmsHANDLE): cmsHANDLE; StdCall; external LCMS2_SO;
- FUNCTION cmsDictAddEntry(hDict: cmsHANDLE; Name, Value: PWChar; DisplayName, DisplayValue : LPcmsMLU): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsDictGetEntryList(hDict: cmsHANDLE): LPcmsDICTentry; StdCall; external LCMS2_SO;
- FUNCTION cmsDictNextEntry(e : LPcmsDICTentry): LPcmsDICTentry; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateProfilePlaceholder(ContextID: cmsContext): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsGetProfileContextID(hProfile: cmsHPROFILE):cmsContext; StdCall; external LCMS2_SO;
- FUNCTION cmsGetTagCount(hProfile: cmsHPROFILE): cmsInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsGetTagSignature(hProfile: cmsHPROFILE; n: cmsUInt32Number): cmsTagSignature; StdCall; external LCMS2_SO;
- FUNCTION cmsIsTag(hProfile: cmsHPROFILE; sig: cmsTagSignature ): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsReadTag(hProfile: cmsHPROFILE; sig: cmsTagSignature ): Pointer; StdCall; external LCMS2_SO;
- FUNCTION cmsWriteTag(hProfile: cmsHPROFILE; sig: cmsTagSignature; data: Pointer): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsLinkTag(hProfile: cmsHPROFILE; sig: cmsTagSignature; dest: cmsTagSignature): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsTagLinkedTo(hProfile: cmsHPROFILE; sig: cmsTagSignature):cmsTagSignature; StdCall; external LCMS2_SO;
- FUNCTION cmsReadRawTag(hProfile: cmsHPROFILE; sig: cmsTagSignature; Buffer: Pointer; BufferSize: cmsUInt32Number): cmsInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsWriteRawTag(hProfile: cmsHPROFILE; sig: cmsTagSignature; data: Pointer; Size: cmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsGetHeaderFlags(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall; external LCMS2_SO;
- PROCEDURE cmsGetHeaderAttributes(hProfile: cmsHPROFILE; Flags: LPcmsUInt64Number); StdCall; external LCMS2_SO;
- PROCEDURE cmsGetHeaderProfileID(hProfile: cmsHPROFILE; ProfileID: LPcmsUInt8Number); StdCall; external LCMS2_SO;
- FUNCTION cmsGetHeaderRenderingIntent(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall; external LCMS2_SO;
- PROCEDURE cmsSetHeaderFlags(hProfile: cmsHPROFILE; Flags: cmsUInt32Number); StdCall; external LCMS2_SO;
- FUNCTION cmsGetHeaderManufacturer(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall; external LCMS2_SO;
- PROCEDURE cmsSetHeaderManufacturer(hProfile: cmsHPROFILE; manufacturer: cmsUInt32Number ); StdCall; external LCMS2_SO;
- FUNCTION cmsGetHeaderModel(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall; external LCMS2_SO;
- PROCEDURE cmsSetHeaderModel(hProfile: cmsHPROFILE; model: cmsUInt32Number ); StdCall; external LCMS2_SO;
- PROCEDURE cmsSetHeaderAttributes(hProfile: cmsHPROFILE; Flags: cmsUInt64Number); StdCall; external LCMS2_SO;
- PROCEDURE cmsSetHeaderProfileID(hProfile: cmsHPROFILE; ProfileID: LPcmsUInt8Number); StdCall; external LCMS2_SO;
- PROCEDURE cmsSetHeaderRenderingIntent(hProfile: cmsHPROFILE; RenderingIntent: cmsUInt32Number ); StdCall; external LCMS2_SO;
- FUNCTION cmsGetPCS(hProfile: cmsHPROFILE):cmsColorSpaceSignature; StdCall; external LCMS2_SO;
- PROCEDURE cmsSetPCS(hProfile: cmsHPROFILE; pcs: cmsColorSpaceSignature); StdCall; external LCMS2_SO;
- FUNCTION cmsGetColorSpace(hProfile: cmsHPROFILE): cmsColorSpaceSignature; StdCall; external LCMS2_SO;
- PROCEDURE cmsSetColorSpace(hProfile: cmsHPROFILE; sig: cmsColorSpaceSignature); StdCall; external LCMS2_SO;
- FUNCTION cmsGetDeviceClass(hProfile: cmsHPROFILE): cmsProfileClassSignature; StdCall; external LCMS2_SO;
- PROCEDURE cmsSetDeviceClass(hProfile: cmsHPROFILE; sig: cmsProfileClassSignature); StdCall; external LCMS2_SO;
- PROCEDURE cmsSetProfileVersion(hProfile: cmsHPROFILE; Version: cmsFloat64Number); StdCall; external LCMS2_SO;
- FUNCTION cmsGetProfileVersion(hProfile: cmsHPROFILE): cmsFloat64Number; StdCall; external LCMS2_SO;
- FUNCTION cmsGetEncodedICCversion(hProfile: cmsHPROFILE): cmsUInt32Number; StdCall; external LCMS2_SO;
- PROCEDURE cmsSetEncodedICCversion(hProfile: cmsHPROFILE; Version: cmsUInt32Number); StdCall; external LCMS2_SO;
- FUNCTION cmsIsIntentSupported(hProfile: cmsHPROFILE; Intent: cmsUInt32Number; UsedDirection: cmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIsMatrixShaper(hProfile: cmsHPROFILE): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIsCLUT(hProfile: cmsHPROFILE; Intent: cmsUInt32Number; UsedDirection: cmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION _cmsICCcolorSpace(OurNotation: Integer): cmsColorSpaceSignature; StdCall; external LCMS2_SO;
- FUNCTION _cmsLCMScolorSpace(ProfileSpace: cmsColorSpaceSignature): Integer; StdCall; external LCMS2_SO;
- FUNCTION cmsChannelsOf( ColorSpace: cmsColorSpaceSignature): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsFormatterForColorspaceOfProfile(hProfile: cmsHPROFILE; nBytes: cmsUInt32Number; lIsFloat: cmsBool): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsFormatterForPCSOfProfile(hProfile: cmsHPROFILE; nBytes: cmsUInt32Number; lIsFloat: cmsBool): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsGetProfileInfo(hProfile: cmsHPROFILE; Info: cmsInfoType; LanguageCode, CountryCode: PAnsiChar;
- Buffer: PWChar; BufferSize: cmsUInt32Number): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsGetProfileInfoASCII(hProfile: cmsHPROFILE; Info: cmsInfoType; LanguageCode, CountryCode: PAnsiChar;
- Buffer: PAnsiChar; BufferSize: cmsUInt32Number): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsOpenIOhandlerFromFile(ContextID: cmsContext; FileName, AccessMode: PAnsiChar): LPcmsIOHANDLER; StdCall; external LCMS2_SO;
- // FUNCTION cmsOpenIOhandlerFromStream(ContextID: cmsContext; FILE* Stream): LPcmsIOHANDLER; StdCall; external LCMS2_SO;
- FUNCTION cmsOpenIOhandlerFromMem(ContextID: cmsContext; Buffer: Pointer; size: cmsUInt32Number; AccessMode: PAnsiChar): LPcmsIOHANDLER; StdCall; external LCMS2_SO;
- FUNCTION cmsOpenIOhandlerFromNULL(ContextID: cmsContext): LPcmsIOHANDLER; StdCall; external LCMS2_SO;
- FUNCTION cmsCloseIOhandler(io: LPcmsIOHANDLER): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsMD5computeID(hProfile: cmsHPROFILE): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsOpenProfileFromFile(ICCProfile : PAnsiChar; sAccess: PAnsiChar): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsOpenProfileFromFileTHR(ContextID: cmsContext; ICCProfile, sAccess: PAnsiChar): cmsHPROFILE; StdCall; external LCMS2_SO;
- // FUNCTION CMSEXPORT cmsOpenProfileFromStream(FILE* ICCProfile, const char* sAccess): cmsHPROFILE; StdCall; external LCMS2_SO;
- // FUNCTION CMSEXPORT cmsOpenProfileFromStreamTHR(ContextID: cmsContext; FILE* ICCProfile, const char* sAccess): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsOpenProfileFromMem(MemPtr: Pointer; dwSize: cmsUInt32Number): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsOpenProfileFromMemTHR(ContextID: cmsContext; MemPtr: Pointer; dwSize: cmsUInt32Number): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsOpenProfileFromIOhandlerTHR(ContextID: cmsContext; io: LPcmsIOHANDLER): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCloseProfile(hProfile: cmsHPROFILE): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsSaveProfileToFile(hProfile: cmsHPROFILE; FileName: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- // FUNCTION CMSEXPORT cmsSaveProfileToStream(hProfile: cmsHPROFILE, FILE* Stream): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsSaveProfileToMem(hProfile: cmsHPROFILE; MemPtr: Pointer; BytesNeeded: LPcmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsSaveProfileToIOhandler(hProfile: cmsHPROFILE; io: LPcmsIOHANDLER):cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateRGBProfileTHR(ContextID: cmsContext;
- WhitePoint: LPcmsCIExyY;
- Primaries: LPcmsCIExyYTRIPLE;
- TransferFunction: LPLPcmsToneCurveArray): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateRGBProfile(WhitePoint: LPcmsCIExyY;
- Primaries: LPcmsCIExyYTRIPLE;
- TransferFunction: LPLPcmsToneCurveArray): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateGrayProfileTHR(ContextID: cmsContext;
- WhitePoint: LPcmsCIExyY;
- TransferFunction: LPcmsToneCurve): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateGrayProfile(WhitePoint: LPcmsCIExyY;
- TransferFunction: LPcmsToneCurve): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateLinearizationDeviceLinkTHR(ContextID: cmsContext;
- ColorSpace: cmsColorSpaceSignature;
- TransferFunctions: LPLPcmsToneCurveArray): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateLinearizationDeviceLink(ColorSpace: cmsColorSpaceSignature;
- TransferFunctions: LPLPcmsToneCurveArray): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateInkLimitingDeviceLinkTHR(ContextID: cmsContext;
- ColorSpace: cmsColorSpaceSignature; Limit: cmsFloat64Number): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateInkLimitingDeviceLink(ColorSpace: cmsColorSpaceSignature; Limit: cmsFloat64Number): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateLab2ProfileTHR(ContextID: cmsContext; WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateLab2Profile(WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateLab4ProfileTHR(ContextID: cmsContext; WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateLab4Profile(WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateXYZProfileTHR(ContextID: cmsContext): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateXYZProfile: cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreate_sRGBProfileTHR(ContextID: cmsContext): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreate_sRGBProfile: cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateBCHSWabstractProfileTHR(ContextID: cmsContext;
- nLUTPoints: Integer;
- Bright,
- Contrast,
- Hue,
- Saturation: cmsFloat64Number;
- TempSrc,
- TempDest: Integer): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateBCHSWabstractProfile( nLUTPoints: Integer;
- Bright,
- Contrast,
- Hue,
- Saturation: cmsFloat64Number;
- TempSrc,
- TempDest: Integer): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateNULLProfileTHR(ContextID: cmsContext): cmsHPROFILE; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateNULLProfile: cmsHPROFILE; StdCall; external LCMS2_SO;
- // Converts a transform to a devicelink profile
- FUNCTION cmsTransform2DeviceLink(hTransform: cmsHTRANSFORM; Version: cmsFloat64Number; dwFlags: cmsUInt32Number): cmsHPROFILE; StdCall; external LCMS2_SO;
- // Call with NULL as parameters to get the intent count
- FUNCTION cmsGetSupportedIntents(nMax: cmsUInt32Number; Codes: LPcmsUInt32Number; Descriptions: LPPAnsiChar): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsFLAGS_GRIDPOINTS(n: Integer): Integer; begin cmsFLAGS_GRIDPOINTS := (((n) and $FF) shl 16) end;
- FUNCTION cmsCreateTransformTHR(ContextID: cmsContext;
- Input: cmsHPROFILE;
- InputFormat: cmsUInt32Number;
- Output: cmsHPROFILE;
- OutputFormat: cmsUInt32Number;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateTransform(Input: cmsHPROFILE;
- InputFormat: cmsUInt32Number;
- Output: cmsHPROFILE;
- OutputFormat: cmsUInt32Number;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateProofingTransformTHR(ContextID: cmsContext;
- Input: cmsHPROFILE;
- InputFormat: cmsUInt32Number;
- Output: cmsHPROFILE;
- OutputFormat: cmsUInt32Number;
- Proofing: cmsHPROFILE;
- Intent: cmsUInt32Number;
- ProofingIntent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateProofingTransform(Input: cmsHPROFILE;
- InputFormat: cmsUInt32Number;
- Output: cmsHPROFILE;
- OutputFormat: cmsUInt32Number;
- Proofing: cmsHPROFILE;
- Intent: cmsUInt32Number;
- ProofingIntent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateMultiprofileTransformTHR(ContextID: cmsContext;
- hProfiles: LPcmsHPROFILEArray;
- nProfiles: cmsUInt32Number;
- InputFormat: cmsUInt32Number;
- OutputFormat: cmsUInt32Number;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateMultiprofileTransform( hProfiles: LPcmsHPROFILEArray;
- nProfiles: cmsUInt32Number;
- InputFormat: cmsUInt32Number;
- OutputFormat: cmsUInt32Number;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall; external LCMS2_SO;
- FUNCTION cmsCreateExtendedTransform(ContextID: cmsContext;
- nProfiles: cmsUInt32Number;
- hProfiles: LPcmsHPROFILEArray;
- BPC: LPcmsBoolArray;
- Intents: LPcmsUInt32NumberArray;
- AdaptationStates: LPcmsFloat64NumberArray;
- hGamutProfile: cmsHPROFILE;
- nGamutPCSposition: cmsUInt32Number;
- InputFormat,
- OutputFormat: cmsUInt32Number;
- dwFlags: cmsUInt32Number): cmsHTRANSFORM; StdCall; external LCMS2_SO;
- PROCEDURE cmsDeleteTransform(hTransform: cmsHTRANSFORM); StdCall; external LCMS2_SO;
- PROCEDURE cmsDoTransform(Transform: cmsHTRANSFORM; InputBuffer, OutputBuffer: Pointer; size: cmsUInt32Number); StdCall; external LCMS2_SO;
- PROCEDURE cmsDoTransformStride(Transform: cmsHTRANSFORM; InputBuffer, OutputBuffer: Pointer; size: cmsUInt32Number; stride: cmsUInt32Number); StdCall; external LCMS2_SO;
- PROCEDURE cmsSetAlarmCodes( NewAlarm: LPcmsUInt16NumberArray); StdCall; external LCMS2_SO;
- PROCEDURE cmsGetAlarmCodes(NewAlarm: LPcmsUInt16NumberArray); StdCall; external LCMS2_SO;
- // Adaptation state for absolute colorimetric intent
- FUNCTION cmsSetAdaptationState(d: cmsFloat64Number):cmsFloat64Number; StdCall; external LCMS2_SO;
- // Grab the ContextID from an open transform. Returns NULL if a NULL transform is passed
- FUNCTION cmsGetTransformContextID(hTransform: cmsHTRANSFORM):cmsContext; StdCall; external LCMS2_SO;
- // For backwards compatibility
- FUNCTION cmsChangeBuffersFormat(hTransform: cmsHTRANSFORM; InputFormat, OutputFormat: cmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- // lcms2 unified method to access postscript color resources
- FUNCTION cmsGetPostScriptColorResource(ContextID: cmsContext; RType: cmsPSResourceType;
- hProfile: cmsHPROFILE;
- Intent: cmsUInt32Number;
- dwFlags: cmsUInt32Number;
- io: LPcmsIOHANDLER): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsGetPostScriptCSA(ContextID: cmsContext; hProfile: cmsHPROFILE; Intent: cmsUInt32Number; dwFlags: cmsUInt32Number; Buffer: Pointer; dwBufferLen: cmsUInt32Number ): cmsUInt32Number; StdCall; external LCMS2_SO;
- FUNCTION cmsGetPostScriptCRD(ContextID: cmsContext; hProfile: cmsHPROFILE; Intent: cmsUInt32Number; dwFlags: cmsUInt32Number; Buffer: Pointer; dwBufferLen: cmsUInt32Number): cmsUInt32Number; StdCall; external LCMS2_SO;
- // CGATS.13 parser
- FUNCTION cmsIT8Alloc: cmsHANDLE; StdCall; external LCMS2_SO;
- PROCEDURE cmsIT8Free(hIT8: cmsHANDLE); StdCall; external LCMS2_SO;
- // Tables
- FUNCTION cmsIT8TableCount(hIT8: cmsHANDLE): Integer; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetTable(hIT8: cmsHANDLE; nTable: Integer): Integer; StdCall; external LCMS2_SO;
- // Persistence
- FUNCTION cmsIT8LoadFromFile(cFileName: PAnsiChar): cmsHANDLE; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8LoadFromMem(Ptr: Pointer; size :DWord): cmsHANDLE; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SaveToFile(hIT8: cmsHANDLE; cFileName: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SaveToMem(hIT8: cmsHANDLE; MemPtr: Pointer; BytesNeeded: LPcmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- // Properties
- FUNCTION cmsIT8GetSheetType(hIT8: cmsHANDLE): PAnsiChar; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetSheetType(hIT8: cmsHANDLE; TheType: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetComment(hIT8: cmsHANDLE; cComment: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetPropertyStr(hIT8: cmsHANDLE; cProp, Str: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetPropertyDbl(hIT8: cmsHANDLE; cProp: PAnsiChar; Val: Double): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetPropertyHex(hIT8: cmsHANDLE; cProp: PAnsiChar; Val: Integer): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetPropertyUncooked(hIT8: cmsHANDLE; Key, Buffer: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8GetProperty(hIT8: cmsHANDLE; cProp: PAnsiChar): PAnsiChar; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8GetPropertyDbl(hIT8: cmsHANDLE; cProp: PAnsiChar): Double; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8EnumProperties(hIT8: cmsHANDLE; var PropertyNames: LPPAnsiChar): Integer; StdCall; external LCMS2_SO;
- // Datasets
- FUNCTION cmsIT8GetDataRowCol(hIT8: cmsHANDLE; row, col: Integer): PAnsiChar; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8GetDataRowColDbl(hIT8: cmsHANDLE; row, col: Integer): Double; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetDataRowCol(hIT8: cmsHANDLE; row, col: Integer; Val: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetDataRowColDbl(hIT8: cmsHANDLE; row, col: Integer; Val: Double): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8GetData(hIT8: cmsHANDLE; cPatch, cSample: PAnsiChar): PAnsiChar; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8GetDataDbl(hIT8: cmsHANDLE;cPatch, cSample: PAnsiChar): Double; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetData(hIT8: cmsHANDLE; cPatch, cSample, Val: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetDataDbl(hIT8: cmsHANDLE; cPatch, cSample: PAnsiChar; Val: Double): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8SetDataFormat(hIT8: cmsHANDLE; n: Integer; Sample: PAnsiChar): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8EnumDataFormat(hIT8: cmsHANDLE; var SampleNames: LPPAnsiChar): Integer; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8GetPatchName(hIT8: cmsHANDLE; nPatch: Integer; Buffer: PAnsiChar): PAnsiChar; StdCall; external LCMS2_SO;
- // The LABEL extension
- FUNCTION cmsIT8SetTableByLabel(hIT8: cmsHANDLE; cSet, cField, ExpectedType: PAnsiChar): Integer; StdCall; external LCMS2_SO;
- FUNCTION cmsIT8FindDataFormat(hIT8: cmsHANDLE; cSample: PAnsiChar): Integer; StdCall; external LCMS2_SO;
- // Formatter for double
- PROCEDURE cmsIT8DefineDblFormat(hIT8: cmsHANDLE; Formatter: PAnsiChar); StdCall; external LCMS2_SO;
- FUNCTION cmsGBDAlloc(ContextID: cmsContext):cmsHANDLE; StdCall; external LCMS2_SO;
- PROCEDURE cmsGBDFree(hGBD: cmsHANDLE); StdCall; external LCMS2_SO;
- FUNCTION cmsGDBAddPoint(hGBD: cmsHANDLE; Lab: LPcmsCIELab): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsGDBCompute(hGDB: cmsHANDLE; dwFlags: cmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsGDBCheckPoint(hGBD: cmsHANDLE; Lab: LPcmsCIELab): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsDetectBlackPoint( BlackPoint: LPcmsCIEXYZ; hProfile: cmsHPROFILE; Intent: cmsUInt32Number; dwFlags: cmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsDetectDestinationBlackPoint( BlackPoint: LPcmsCIEXYZ; hProfile: cmsHPROFILE; Intent: cmsUInt32Number; dwFlags: cmsUInt32Number): cmsBool; StdCall; external LCMS2_SO;
- FUNCTION cmsDetectTAC(hProfile: cmsHPROFILE): cmsFloat64Number; StdCall; external LCMS2_SO;
- FUNCTION cmsDesaturateLab(Lab: LPcmsCIELab; amax, amin, bmax, bmin: cmsFloat64Number): cmsBool; StdCall; external LCMS2_SO;
- END.
|