Documentation
¶
Overview ¶
lcms_version.go (in package golcms)
Index ¶
- Constants
- Variables
- func AddConversion(mm mem.Manager, Result *cmsPipeline, InPCS cmsColorSpaceSignature, ...) bool
- func AddMLUBlock(mlu *cmsMLU, block []uint16, LanguageCode, CountryCode uint16) bool
- func AllCurvesAreLinear(mpe *cmsStage) bool
- func AllocArray(mm mem.Manager, contextID CmsContext, a *cmsDICarray, count uint32, ...) bool
- func AllocElem(mm mem.Manager, contextID CmsContext, e *cmsDICelem, count uint32) bool
- func AllocEmptyTransform(mm mem.Manager, ContextID CmsContext, lut *cmsPipeline, Intent uint32, ...) *cmsTRANSFORM
- func BYTES_SH(b uint32) uint32
- func BaseToBase(input uint32, baseIn, baseOut int) uint32
- func BilinearInterp16(mm mem.Manager, Input []uint16, Output []uint16, p *cmsInterpParams)
- func BilinearInterpFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func BlackPointAsDarkerColorant(mm mem.Manager, hInput CmsHPROFILE, Intent uint32, BlackPoint *cmsCIEXYZ, ...) bool
- func BlackPointUsingPerceptualBlack(mm mem.Manager, BlackPoint *cmsCIEXYZ, hProfile CmsHPROFILE) bool
- func BlackPreservingGrayOnlySampler(mm mem.Manager, In []uint16, Out []uint16, cargo any) int32
- func BlackPreservingKOnlyIntents(mm mem.Manager, ContextID CmsContext, nProfiles uint32, TheIntents []uint32, ...) *cmsPipeline
- func BlackPreservingKPlaneIntents(mm mem.Manager, ContextID CmsContext, nProfiles uint32, TheIntents []uint32, ...) *cmsPipeline
- func BlackPreservingSampler(mm mem.Manager, In, Out []uint16, cargo any) int32
- func BlessLUT(lut *cmsPipeline) bool
- func BuildGrayInputMatrixPipeline(mm mem.Manager, hProfile CmsHPROFILE) *cmsPipeline
- func BuildGrayOutputPipeline(mm mem.Manager, hProfile CmsHPROFILE) *cmsPipeline
- func BuildRGBInputMatrixShaper(mm mem.Manager, hProfile CmsHPROFILE) *cmsPipeline
- func BuildRGBOutputMatrixShaper(mm mem.Manager, hProfile CmsHPROFILE) *cmsPipeline
- func BytesPerPixel(fmt uint32) uint32
- func BytesToFloat32sLE(b []byte) []float32
- func BytesToFloat64sLE(b []byte) []float64
- func BytesToUint16sLE(b []byte) []uint16
- func CHAD2Temp(Chad *cmsMAT3) float64
- func CHANGE_ENDIAN(w uint16) uint16
- func CHANNELS_SH(c uint32) uint32
- func CIE2000DeltaE(Lab1, Lab2 *cmsCIELab, Kl, Kc, Kh float64) float64
- func CLUTElemDup(mm mem.Manager, mpe *cmsStage) any
- func CLutElemTypeFree(mm mem.Manager, mpe *cmsStage)
- func COLORSPACE_SH(s uint32) uint32
- func CachedXFORM(mm mem.Manager, p *cmsTRANSFORM, in, out any, PixelsPerLine, LineCount uint32, ...)
- func CachedXFORMBytes(mm mem.Manager, p *cmsTRANSFORM, in, out []byte, ...)
- func CachedXFORMGamutCheck(mm mem.Manager, p *cmsTRANSFORM, in, out any, PixelsPerLine, LineCount uint32, ...)
- func CachedXFORMGamutCheckBytes(mm mem.Manager, p *cmsTRANSFORM, in, out []byte, ...)
- func ChangeInterpolationToTrilinear(Lut *cmsPipeline)
- func Clamp_L_doubleV2(L float64) float64
- func Clamp_L_doubleV4(L float64) float64
- func Clamp_ab_doubleV2(ab float64) float64
- func Clamp_ab_doubleV4(ab float64) float64
- func Clipper(mm mem.Manager, In []float32, Out []float32, mpe *cmsStage)
- func CloseEnough(a, b float64) bool
- func CloseEnoughFloat(a, b float64) bool
- func CmsCloseProfile(mm mem.Manager, hProfile CmsHPROFILE) bool
- func CmsContextGetClientChunk(ContextID CmsContext, mc cmsMemoryClient) any
- func CmsDeleteTransform(hTransform CmsHTRANSFORM)
- func CmsDoTransform(mm mem.Manager, Transform CmsHTRANSFORM, InputBuffer, OutputBuffer any, ...)
- func CmsDoTransformBytes(mm mem.Manager, Transform CmsHTRANSFORM, InputBuffer, OutputBuffer []byte, ...)
- func CmsDoTransformLineStride(mm mem.Manager, Transform CmsHTRANSFORM, InputBuffer, OutputBuffer any, ...)
- func CmsDoTransformParallel(mm mem.Manager, xform CmsHTRANSFORM, inBuf, outBuf []byte, pixelCount uint32, ...)
- func CmsDoTransformParallelBytes(mm mem.Manager, xform CmsHTRANSFORM, inBuf, outBuf []byte, pixelCount uint32, ...)
- func CmsDoTransformStride(mm mem.Manager, Transform CmsHTRANSFORM, InputBuffer, OutputBuffer any, ...)
- func CmsFLAGS_GRIDPOINTS(n int) int
- func CmsFreeToneCurve(Curve *CmsToneCurve)
- func CmsGetColorSpace(hProfile CmsHPROFILE) cmsColorSpaceSignature
- func CmsGetProfileInfoASCII(mm mem.Manager, hProfile CmsHPROFILE, Info CmsInfoType, LanguageCode string, ...) uint32
- func ColorSpaceIsCompatible(a, b cmsColorSpaceSignature) bool
- func CompatibleTypes(desc1 *cmsTagDescriptor, desc2 *cmsTagDescriptor) bool
- func ComputeAbsoluteIntent(AdaptationState float64, WhitePointIn *cmsCIEXYZ, ...) bool
- func ComputeBlackPointCompensation(BlackPointIn *cmsCIEXYZ, BlackPointOut *cmsCIEXYZ, m *cmsMAT3, off *cmsVEC3)
- func ComputeChromaticAdaptation(Conversion *cmsMAT3, SourceWhitePoint, DestWhitePoint *cmsCIEXYZ, ...) bool
- func ComputeComponentIncrements(format, bytesPerPlane uint32, ...)
- func ComputeConversion(mm mem.Manager, i uint32, hProfiles []CmsHPROFILE, Intent uint32, BPC bool, ...) bool
- func ComputeIncrementsForChunky(format uint32, componentStartingOrder, componentPointerIncrements []uint32)
- func ComputeIncrementsForPlanar(format uint32, bytesPerPlane uint32, ...)
- func ComputeLBFD(Lab *cmsCIELab) float64
- func CubeSize(Dims []uint32, b uint32) uint32
- func CurveSetDup(mm mem.Manager, mpe *cmsStage) any
- func CurveSetElemTypeFree(mm mem.Manager, mpe *cmsStage)
- func CurvesDup(ContextID CmsContext, ptr any) any
- func CurvesFree(ContextID CmsContext, ptr any)
- func DOSWAP_SH(e uint32) uint32
- func DSWAP(x, y *float64)
- func DecideCurveType(ICCVersion float64, Data any) cmsTagTypeSignature
- func DecideLUTtypeA2B(ICCVersion float64, Data any) cmsTagTypeSignature
- func DecideLUTtypeB2A(ICCVersion float64, Data any) cmsTagTypeSignature
- func DecideTextDescType(ICCVersion float64, Data any) cmsTagTypeSignature
- func DecideTextType(iccVersion float64, Data any) cmsTagTypeSignature
- func DecideXYZtype(ICCVersion float64, Data any) cmsTagTypeSignature
- func DefaultEvalParametricFn(Type int32, Params []float64, R float64) float64
- func DefaultICCintents(mm mem.Manager, ContextID CmsContext, nProfiles uint32, TheIntents []uint32, ...) *cmsPipeline
- func DefaultInterpolatorsFactory(nInputChannels, nOutputChannels, dwFlags uint32) cmsInterpFunction
- func DefaultLogErrorHandlerFunction(ContextID CmsContext, ErrorCode uint32, text string)
- func DupFormatterFactoryList(mm mem.Manager, ctx CmsContext, src CmsContext)
- func DupMatShaper(ContextID CmsContext, Data any) any
- func DupNamedColorList(mm mem.Manager, mpe *cmsStage) any
- func DupPluginOptimizationList(mm mem.Manager, ctx CmsContext, src CmsContext)
- func DupPluginTransformList(mm mem.Manager, ctx CmsContext, src CmsContext)
- func DupWcs(contextID CmsContext, ptr []uint16) []uint16
- func ENDIAN16_SH(e uint32) uint32
- func EXTRA_SH(e uint32) uint32
- func EntriesByGamma(Gamma float64) uint32
- func EstimateTAC(mm mem.Manager, in []uint16, out []uint16, cargo any) int32
- func EuclideanDistance(a, b []float32, n int) float32
- func Eval1Input(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval1InputFloat(mm mem.Manager, Value []float32, Output []float32, p *cmsInterpParams)
- func Eval4Inputs(mm mem.Manager, Input, Output []uint16, p *cmsInterpParams)
- func Eval4InputsFloat(mm mem.Manager, Input, Output []float32, p *cmsInterpParams)
- func Eval5Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval5InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval6Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval6InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval7Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval7InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval8Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval8InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval9Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval9InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval10Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval10InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval11Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval11InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval12Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval12InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval13Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval13InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval14Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval14InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval15Inputs(mm mem.Manager, Input []uint16, Output []uint16, p16 *cmsInterpParams)
- func Eval15InputsFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func Eval16nop1D(mm mem.Manager, Input []uint16, Output []uint16, params *cmsInterpParams)
- func EvalNamedColor(mm mem.Manager, in []float32, out []float32, mpe *cmsStage)
- func EvalNamedColorPCS(mm mem.Manager, in []float32, out []float32, mpe *cmsStage)
- func EvalSegmentedFn(mm mem.Manager, g *CmsToneCurve, R float64) float64
- func EvaluateCLUTfloat(mm mem.Manager, In []float32, Out []float32, mpe *cmsStage)
- func EvaluateCLUTfloatIn16(mm mem.Manager, In, Out []float32, mpe *cmsStage)
- func EvaluateCurves(mm mem.Manager, In []float32, Out []float32, mpe *cmsStage)
- func EvaluateIdentity(mm mem.Manager, In []float32, Out []float32, mpe *cmsStage)
- func EvaluateLab2XYZ(mm mem.Manager, In []float32, Out []float32, mpe *cmsStage)
- func EvaluateMatrix(mm mem.Manager, in []float32, out []float32, mpe *cmsStage)
- func EvaluateXYZ2Lab(mm mem.Manager, In []float32, Out []float32, mpe *cmsStage)
- func FIXED_REST_TO_INT(x cmsS15Fixed16Number) uint16
- func FIXED_TO_INT(x cmsS15Fixed16Number) int32
- func FLAVOR_SH(s uint32) uint32
- func FLOAT_SH(a uint32) uint32
- func FROM_8_TO_16(rgb uint8) uint16
- func FROM_16_TO_8(rgb uint16) uint8
- func FastEvaluateCurves8(mm mem.Manager, In []uint16, Out []uint16, D any)
- func FastEvaluateCurves16(mm mem.Manager, In []uint16, Out []uint16, D any)
- func FastIdentity16(mm mem.Manager, In []uint16, Out []uint16, D any)
- func FileClose(iohandler *cms_io_handler) bool
- func FileRead(iohandler *cms_io_handler, buffer any, size, count uint32) uint32
- func FileSeek(iohandler *cms_io_handler, offset uint32) bool
- func FileTell(iohandler *cms_io_handler) uint32
- func FileWrite(iohandler *cms_io_handler, size uint32, buffer []byte) bool
- func FillFirstShaper(mm mem.Manager, Table []cmsS1Fixed14Number, Curve *CmsToneCurve)
- func FillSecondShaper(mm mem.Manager, Table []uint16, Curve *CmsToneCurve, Is8BitsOutput bool)
- func FixWhiteMisalignment(mm mem.Manager, Lut *cmsPipeline, ...) bool
- func Float32sToBytesLE(src []float32) []byte
- func Float64sToBytesLE(src []float64) []byte
- func FloatXFORM(mm mem.Manager, p *cmsTRANSFORM, in, out any, PixelsPerLine, LineCount uint32, ...)
- func FloatXFORMBytes(mm mem.Manager, p *cmsTRANSFORM, in, out []byte, ...)
- func FormatterPos(frm uint32) int32
- func FreeArray(a *cmsDICarray)
- func FreeElem(e *cmsDICelem)
- func FreeMatShaper(ContextID CmsContext, Data any)
- func FreeNamedColorList(mm mem.Manager, mpe *cmsStage)
- func From16ToFloat(In []uint16, Out []float32, n uint32)
- func FromFloatTo16(In []float32, Out []uint16, n uint32)
- func FromLabV2ToLabV4(x uint16) uint16
- func FromLabV4ToLabV2(x uint16) uint16
- func GamutSampler(mm mem.Manager, In []uint16, Out []uint16, cargo any) int32
- func GenericMPEDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func GenericMPEFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func GetHandler(sig cmsTagTypeSignature, PluginLinkedList *cmsTagTypeLinkedList, ...) *cmsTagTypeHandler
- func GetInfo(mm mem.Manager, hProfile CmsHPROFILE, Info CmsInfoType) *cmsMLU
- func GetInterval(In float64, LutTable []uint16, p *cmsInterpParams) int
- func GetMLUFromProfile(mm mem.Manager, h CmsHPROFILE, sig cmsTagSignature) *cmsMLU
- func GetParametricCurveByType(ContextID CmsContext, Type int, index *int) *cmsParametricCurvesCollection
- func GetTransformFlags(cmmCargo *cmsTRANSFORM) uint32
- func GetTransformFormatters16(cmmCargo *cmsTRANSFORM) (fromInput, toOutput cmsFormatter16)
- func GetTransformFormattersFloat(cmmCargo *cmsTRANSFORM) (fromInputFloat, toOutputFloat cmsFormatterFloat)
- func GetTransformMaxWorkers(cmmCargo *cmsTRANSFORM) int32
- func GetTransformUserData(cmmCargo *cmsTRANSFORM) any
- func GetTransformWorker(cmmCargo *cmsTRANSFORM) cmsTransform2Fn
- func GetTransformWorkerFlags(cmmCargo *cmsTRANSFORM) uint32
- func GetXFormColorSpaces(nProfiles uint32, hProfiles []CmsHPROFILE, ...) bool
- func GrowMLUpool(mlu *cmsMLU) bool
- func GrowMLUtable(mlu *cmsMLU) bool
- func GrowNamedColorList(mm mem.Manager, v *cmsNAMEDCOLORLIST) bool
- func IdentitySampler(mm mem.Manager, In []uint16, Out []uint16, cargo any) int32
- func IncDelta(Val *float32)
- func InitContextMutex() bool
- func InkLimitingSampler(mm mem.Manager, In []uint16, Out []uint16, cargo any) int32
- func IsDegenerated(g *CmsToneCurve) bool
- func IsEmptyLayer(m *cmsMAT3, off *cmsVEC3) bool
- func IsInSet(Type int, c *cmsParametricCurvesCollection) int
- func IsInkSpace(Type uint32) bool
- func IsProperColorSpace(Check cmsColorSpaceSignature, dwFormat uint32) bool
- func IsTypeSupported(TagDescriptor *cmsTagDescriptor, Type cmsTagTypeSignature) bool
- func L2Fix2(L float64) uint16
- func L2Fix4(L float64) uint16
- func L2float2(v uint16) float64
- func L2float4(v uint16) float64
- func LUTeval16(mm mem.Manager, In, Out []uint16, D any)
- func LUTevalFloat(mm mem.Manager, In, Out []float32, D any)
- func LabToSlice(lab cmsCIELab) []float64
- func LinLerp1D(mm mem.Manager, Value, Output []uint16, p *cmsInterpParams)
- func LinLerp1DScalar16(v uint16, p *cmsInterpParams) uint16
- func LinLerp1Dfloat(mm mem.Manager, Value []float32, Output []float32, p *cmsInterpParams)
- func LinearInterp(a, l, h int32) uint16
- func MatShaperEval16(mm mem.Manager, In []uint16, Out []uint16, D any)
- func MatToSlice(mat cmsMAT3) []float64
- func MatrixElemDup(mm mem.Manager, mpe *cmsStage) any
- func MatrixElemTypeFree(mm mem.Manager, mpe *cmsStage)
- func MemcpySlice[T any](dst, src []T, length int)
- func MemmoveSlice[T any](dest, src []T, count int)
- func MemoryClose(iohandler *cms_io_handler) bool
- func MemoryRead(iohandler *cms_io_handler, buffer any, size, count uint32) uint32
- func MemorySeek(iohandler *cms_io_handler, offset uint32) bool
- func MemoryTell(iohandler *cms_io_handler) uint32
- func MemoryWrite(iohandler *cms_io_handler, size uint32, ptr []byte) bool
- func MemsetSlice[T any](slice []T, value T, length int)
- func NULLClose(iohandler *cms_io_handler) bool
- func NULLRead(iohandler *cms_io_handler, buffer any, size, count uint32) uint32
- func NULLSeek(iohandler *cms_io_handler, offset uint32) bool
- func NULLTell(iohandler *cms_io_handler) uint32
- func NULLWrite(iohandler *cms_io_handler, size uint32, ptr []byte) bool
- func NewCmsMutex() *cmsMutex
- func NormalizeXYZ(Dest *cmsCIEXYZ)
- func NullFloatXFORM(mm mem.Manager, p *cmsTRANSFORM, in, out any, PixelsPerLine, LineCount uint32, ...)
- func NullFloatXFORMBytes(mm mem.Manager, p *cmsTRANSFORM, in, out []byte, ...)
- func NullXFORM(mm mem.Manager, p *cmsTRANSFORM, in, out any, PixelsPerLine, LineCount uint32, ...)
- func NullXFORMBytes(mm mem.Manager, p *cmsTRANSFORM, in, out []byte, ...)
- func OPTIMIZED_SH(s uint32) uint32
- func OptimizeByComputingLinearization(mm mem.Manager, Lut **cmsPipeline, Intent uint32, ...) bool
- func OptimizeByJoiningCurves(mm mem.Manager, Lut **cmsPipeline, Intent uint32, InputFormat *uint32, ...) bool
- func OptimizeByResampling(mm mem.Manager, Lut **cmsPipeline, Intent uint32, InputFormat *uint32, ...) bool
- func OptimizeMatrixShaper(mm mem.Manager, Lut **cmsPipeline, Intent uint32, InputFormat *uint32, ...) bool
- func PLANAR_SH(p uint32) uint32
- func PREMUL_SH(m uint32) uint32
- func Pack1Byte(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack1ByteReversed(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack1ByteSkip1(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack1ByteSkip1SwapFirst(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack1Word(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack1WordBigEndian(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack1WordReversed(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack1WordSkip1(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack1WordSkip1SwapFirst(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3Bytes(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesAndSkip1(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesAndSkip1Optimized(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesAndSkip1Swap(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesAndSkip1SwapFirst(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesAndSkip1SwapFirstOptimized(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesAndSkip1SwapOptimized(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesAndSkip1SwapSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesAndSkip1SwapSwapFirstOptimized(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesOptimized(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesSwap(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3BytesSwapOptimized(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3Words(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3WordsAndSkip1(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3WordsAndSkip1Swap(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3WordsAndSkip1SwapFirst(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3WordsAndSkip1SwapSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3WordsBigEndian(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack3WordsSwap(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack4Bytes(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack4BytesReverse(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack4BytesSwap(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack4BytesSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack4BytesSwapSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack4Words(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack4WordsBigEndian(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack4WordsReverse(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack4WordsSwap(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack6Bytes(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack6BytesSwap(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack6Words(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func Pack6WordsSwap(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackALabV2_8(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackChunkyBytes(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackChunkyWords(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []byte, ...) []byte
- func PackDoubleFrom16(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackDoublesFromFloat(mm mem.Manager, info *cmsTRANSFORM, wOut []float32, output []uint8, ...) []uint8
- func PackFloatFrom16(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackFloatsFromFloat(mm mem.Manager, info *cmsTRANSFORM, wOut []float32, output []uint8, ...) []uint8
- func PackHalfFrom16(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackHalfFromFloat(mm mem.Manager, info *cmsTRANSFORM, wOut []float32, output []uint8, ...) []uint8
- func PackLabDoubleFrom16(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackLabDoubleFromFloat(mm mem.Manager, info *cmsTRANSFORM, wOut []float32, output []uint8, ...) []uint8
- func PackLabFloatFrom16(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackLabFloatFromFloat(mm mem.Manager, info *cmsTRANSFORM, wOut []float32, output []uint8, ...) []uint8
- func PackLabV2_8(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackLabV2_16(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackNothing(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackPlanarBytes(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackPlanarWords(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []byte, ...) []byte
- func PackXYZDoubleFrom16(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackXYZDoubleFromFloat(mm mem.Manager, info *cmsTRANSFORM, wOut []float32, output []uint8, ...) []uint8
- func PackXYZFloatFrom16(mm mem.Manager, info *cmsTRANSFORM, wOut []uint16, output []uint8, ...) []uint8
- func PackXYZFloatFromFloat(mm mem.Manager, info *cmsTRANSFORM, wOut []float32, output []uint8, ...) []uint8
- func ParallelizeIfSuitable(p *cmsTRANSFORM)
- func PatchLUT(CLUT *cmsStage, At []uint16, Value []uint16, nChannelsOut, nChannelsIn uint32) bool
- func PixelSize(Format uint32) uint32
- func PreOptimize(mm mem.Manager, Lut *cmsPipeline) bool
- func PrecalculatedXFORM(mm mem.Manager, p *cmsTRANSFORM, in, out any, PixelsPerLine, LineCount uint32, ...)
- func PrecalculatedXFORMBytes(mm mem.Manager, p *cmsTRANSFORM, in, out []byte, ...)
- func PrecalculatedXFORMGamutCheck(mm mem.Manager, p *cmsTRANSFORM, in, out any, PixelsPerLine, LineCount uint32, ...)
- func PrecalculatedXFORMGamutCheckBytes(mm mem.Manager, p *cmsTRANSFORM, in, out []byte, ...)
- func Prelin8dup(ContextID CmsContext, ptr any) any
- func Prelin8free(ContextID CmsContext, ptr any)
- func Prelin16dup(_ CmsContext, ptr any) any
- func PrelinEval8(mm mem.Manager, Input []uint16, Output []uint16, D any)
- func PrelinEval16(mm mem.Manager, Input []uint16, Output []uint16, D any)
- func PrelinOpt16free(ContextID CmsContext, ptr any)
- func RADIANS(deg float64) float64
- func REVERSE_FLAVOR_8(x uint8) uint8
- func REVERSE_FLAVOR_16(x uint16) uint16
- func ROUND_FIXED_TO_INT(x cmsS15Fixed16Number) int32
- func Read8bitTables(mm mem.Manager, ContextID CmsContext, io *cmsIOHANDLER, lut *cmsPipeline, ...) bool
- func Read16bitTables(mm mem.Manager, ContextID CmsContext, io *cmsIOHANDLER, lut *cmsPipeline, ...) bool
- func ReadCLUT(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ...) *cmsStage
- func ReadCountAndString(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, mlu *cmsMLU, ...) bool
- func ReadEmbeddedText(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, mlu **cmsMLU, ...) bool
- func ReadICCMatrixRGB2XYZ(mm mem.Manager, r *cmsMAT3, hProfile CmsHPROFILE) bool
- func ReadMPECurve(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, ...) bool
- func ReadMPEElem(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, ...) bool
- func ReadMatrix(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, offset uint32) *cmsStage
- func ReadOffsetArray(io *cmsIOHANDLER, a *cmsDICarray, count uint32, length uint32, ...) bool
- func ReadOneElem(io *cmsIOHANDLER, e *cmsDICelem, i uint32, baseOffset uint32) bool
- func ReadOneMLUC(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, e *cmsDICelem, ...) bool
- func ReadOneWChar(io *cmsIOHANDLER, e *cmsDICelem, i uint32) (string, bool)
- func ReadPositionTable(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ...) bool
- func ReadSeqID(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, ...) bool
- func ReadSetOfCurves(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ...) *cmsStage
- func ReadStruct[T any](io *cmsIOHANDLER, endian binary.ByteOrder, count uint32) (T, error)
- func RegisterTypesPlugin(mm mem.Manager, id CmsContext, Data PluginIntrfc, pos cmsMemoryClient) bool
- func Remove1Op(mm mem.Manager, Lut *cmsPipeline, UnaryOp cmsStageSignature) bool
- func Remove2Op(mm mem.Manager, Lut *cmsPipeline, Op1, Op2 cmsStageSignature) bool
- func RemoveElement(mm mem.Manager, head **cmsStage)
- func ReverseFloat(value float32, reverse bool) float32
- func RootOfLeastSquaresFitQuadraticCurve(n int, x []float64, y []float64) float64
- func SWAPFIRST_SH(s uint32) uint32
- func SaveDescription(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, text *cmsMLU) bool
- func SaveOneChromaticity(x, y float64, io *cmsIOHANDLER) bool
- func SaveTags(mm mem.Manager, Icc *cmsICCPROFILE, FileOrig *cmsICCPROFILE) bool
- func SearchIntent(ContextID CmsContext, Intent uint32) *cmsIntentsList
- func SearchMLUEntry(mlu *cmsMLU, LanguageCode, CountryCode uint16) int
- func SearchOneTag(Profile *cmsICCPROFILE, sig cmsTagSignature) int
- func SetLinks(Icc *cmsICCPROFILE) bool
- func SetMatShaper(mm mem.Manager, Dest *cmsPipeline, Curve1 [3]*CmsToneCurve, Mat *cmsMAT3, ...) bool
- func SetSeqDescTag(mm mem.Manager, hProfile CmsHPROFILE, Model []byte) bool
- func SetTextTags(mm mem.Manager, hProfile CmsHPROFILE, Description []uint16) bool
- func SetTransformUserData(cmmCargo *cmsTRANSFORM, ptr unsafe.Pointer, ...)
- func SetWhitePoint(wtPt *cmsCIEXYZ, src *cmsCIEXYZ)
- func SliceToLab(f []float64) cmsCIELab
- func SliceToMat(s []float64) cmsMAT3
- func SliceToVec(s []float64) cmsVEC3
- func SlopeLimiting(g *CmsToneCurve)
- func Sqr(v float64) float64
- func StringToUTF16Slice(s string) []uint16
- func SwapFirstFloat(wIn []float32, nChan uint32)
- func T_BYTES(b uint32) uint32
- func T_CHANNELS(c uint32) uint32
- func T_COLORSPACE(s uint32) uint32
- func T_DOSWAP(e uint32) uint32
- func T_ENDIAN16(e uint32) uint32
- func T_EXTRA(e uint32) uint32
- func T_FLAVOR(s uint32) uint32
- func T_FLOAT(a uint32) uint32
- func T_OPTIMIZED(o uint32) uint32
- func T_PLANAR(p uint32) uint32
- func T_PREMUL(m uint32) uint32
- func T_SWAPFIRST(s uint32) uint32
- func Temp2CHAD(Chad *cmsMAT3, Temp float64)
- func TetrahedralInterp16(mm mem.Manager, Input []uint16, Output []uint16, p *cmsInterpParams)
- func TetrahedralInterpFloat(mm mem.Manager, Input, Output []float32, p *cmsInterpParams)
- func TransformOnePixelWithGamutCheck(mm mem.Manager, p *cmsTRANSFORM, wIn, wOut []uint16)
- func TranslateNonICCIntents(Intent uint32) uint32
- func TrilinearInterp16(mm mem.Manager, Input []uint16, Output []uint16, p *cmsInterpParams)
- func TrilinearInterpFloat(mm mem.Manager, Input []float32, Output []float32, p *cmsInterpParams)
- func TypeChromaticityDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeChromaticityFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeChromaticityRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeChromaticityWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeColorantOrderTypeDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeColorantOrderTypeFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeColorantOrderTypeRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeColorantOrderTypeWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeColorantTableDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeColorantTableFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeColorantTableRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeColorantTableWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeCrdInfoDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, nItems uint32) any
- func TypeCrdInfoFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeCrdInfoRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeCrdInfoWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeCurveDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeCurveFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeCurveRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeCurveWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeDataDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeDataFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeDataRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeDataWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeDateTimeDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeDateTimeFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeDateTimeRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeDateTimeWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeDictionaryDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, nItems uint32) any
- func TypeDictionaryFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeDictionaryRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeDictionaryWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeLUT8Dup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, nItems uint32) any
- func TypeLUT8Free(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeLUT8Read(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeLUT8Write(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeLUT16Dup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeLUT16Free(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeLUT16Read(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeLUT16Write(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeLUTA2BDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeLUTA2BFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeLUTA2BRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeLUTA2BWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeLUTB2ADup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, nItems uint32) any
- func TypeLUTB2AFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeLUTB2ARead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeLUTB2AWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeMLUDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeMLUFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeMLURead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeMLUWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeMPEDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, nItems uint32) any
- func TypeMPEFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeMPERead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeMPEWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeMPEclutRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeMPEclutWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeMPEcurveRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeMPEcurveWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeMPEmatrixRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeMPEmatrixWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeMeasurementDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeMeasurementFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeMeasurementRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeMeasurementWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeNamedColorDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeNamedColorFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeNamedColorRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeNamedColorWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeParametricCurveDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeParametricCurveFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeParametricCurveRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeParametricCurveWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeProfileSequenceDescDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeProfileSequenceDescFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeProfileSequenceDescRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeProfileSequenceDescWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeProfileSequenceIdDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, nItems uint32) any
- func TypeProfileSequenceIdFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeProfileSequenceIdRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeProfileSequenceIdWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeS15Fixed16Dup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeS15Fixed16Free(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeS15Fixed16Read(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeS15Fixed16Write(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeScreeningDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeScreeningFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeScreeningRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeScreeningWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeSignatureDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeSignatureFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeSignatureRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeSignatureWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeTextDescriptionDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, nItems uint32) any
- func TypeTextDescriptionFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeTextDescriptionRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeTextDescriptionWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeTextDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeTextFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeTextRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeTextWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeU16Fixed16Dup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeU16Fixed16Free(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeU16Fixed16Read(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeU16Fixed16Write(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeUcrBgDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeUcrBgFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeUcrBgRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeUcrBgWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeVcgtDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeVcgtFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeVcgtRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeVcgtWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeVideoSignalDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeVideoSignalFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeVideoSignalRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeVideoSignalWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeViewingConditionsDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeViewingConditionsFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeViewingConditionsRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeViewingConditionsWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func TypeXYZDup(mm mem.Manager, self *cmsTagTypeHandler, ptr any, n uint32) any
- func TypeXYZFree(mm mem.Manager, self *cmsTagTypeHandler, ptr any)
- func TypeXYZRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, ...) any
- func TypeXYZWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, ...) bool
- func Uint16sToBytesLE(src []uint16) []byte
- func Unroll1Byte(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll1ByteReversed(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll1ByteSkip1(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll1ByteSkip2(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll1Word(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll1WordReversed(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll1WordSkip3(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll2Bytes(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll2Words(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll3Bytes(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll3BytesSkip1Swap(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll3BytesSkip1SwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll3BytesSkip1SwapSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll3BytesSwap(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll3Words(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll3WordsSkip1Swap(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll3WordsSkip1SwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll3WordsSwap(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4Bytes(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4BytesReverse(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4BytesSwap(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4BytesSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4BytesSwapSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4Words(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4WordsReverse(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4WordsSwap(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4WordsSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll4WordsSwapSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func Unroll8ToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func Unroll16ToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollALabV2_8(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollALabV2_8ToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollAnyWords(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollAnyWordsPremul(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollChunkyBytes(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollDouble1Chan(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, Stride uint32) []uint8
- func UnrollDoubleTo16(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, Stride uint32) []uint8
- func UnrollDoublesToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollFloatTo16(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, Stride uint32) []uint8
- func UnrollFloatsToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollHalfTo16(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollHalfToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollLabDoubleTo16(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollLabDoubleToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollLabFloatTo16(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollLabFloatToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollLabV2_8(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollLabV2_8ToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollLabV2_16(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollLabV2_16ToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollNothing(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, Stride uint32) []uint8
- func UnrollPlanarBytes(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollPlanarWords(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollPlanarWordsPremul(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollXYZDoubleTo16(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollXYZDoubleToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UnrollXYZFloatTo16(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
- func UnrollXYZFloatToFloat(mm mem.Manager, info *cmsTRANSFORM, wIn []float32, accum []uint8, ...) []uint8
- func UpstreamVersion() string
- func VecToSlice(vec cmsVEC3) []float64
- func WhitesAreEqual(n uint32, White1, White2 []uint16) bool
- func Write8bitTables(ContextID CmsContext, io *cmsIOHANDLER, n uint32, ...) bool
- func Write16bitTables(ContextID CmsContext, io *cmsIOHANDLER, tables *cmsStageToneCurvesData) bool
- func WriteCLUT(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, precision uint8, ...) bool
- func WriteCountAndString(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, mlu *cmsMLU, ...) bool
- func WriteMPECurve(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, ...) bool
- func WriteMatrix(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, mpe *cmsStage) bool
- func WriteOffsetArray(io *cmsIOHANDLER, a *cmsDICarray, count uint32, length uint32) bool
- func WriteOneElem(io *cmsIOHANDLER, e *cmsDICelem, i uint32) bool
- func WriteOneMLUC(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, e *cmsDICelem, ...) bool
- func WriteOneWChar(io *cmsIOHANDLER, e *cmsDICelem, i uint32, str string, baseOffset uint32) bool
- func WritePositionTable(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ...) bool
- func WriteSegmentedCurve(io *cmsIOHANDLER, curve *CmsToneCurve) bool
- func WriteSeqID(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, ...) bool
- func WriteSetOfCurves(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ...) bool
- func WriteStruct[T any](io *cmsIOHANDLER, value T, endian binary.ByteOrder) bool
- func XFormSampler16(mm mem.Manager, In, Out []uint16, cargo any) int32
- func XYZ2Fix(d float64) uint16
- func XYZ2Float(v uint16) float64
- type CmsCIExyY
- type CmsCIExyYTRIPLE
- type CmsContext
- type CmsContextStruct
- type CmsHANDLE
- type CmsHPROFILE
- func CmsCreateGrayProfile(mm mem.Manager, WhitePoint *CmsCIExyY, TransferFunction *CmsToneCurve) CmsHPROFILE
- func CmsCreateLab2Profile(mm mem.Manager, WhitePoint *CmsCIExyY) CmsHPROFILE
- func CmsCreateRGBProfile(mm mem.Manager, WhitePoint *CmsCIExyY, Primaries *CmsCIExyYTRIPLE, ...) CmsHPROFILE
- func CmsCreateRGBProfileTHR(mm mem.Manager, ContextID CmsContext, WhitePoint *CmsCIExyY, ...) CmsHPROFILE
- func CmsCreateXYZProfile(mm mem.Manager) CmsHPROFILE
- func CmsCreate_sRGBProfile(mm mem.Manager) CmsHPROFILE
- func CmsCreate_sRGBProfileTHR(mm mem.Manager, ContextID CmsContext) CmsHPROFILE
- func CmsOpenProfileFromFile(mm mem.Manager, ICCProfile string, sAccess string) CmsHPROFILE
- func CmsOpenProfileFromMem(mm mem.Manager, MemPtr any, dwSize uint32) CmsHPROFILE
- type CmsHTRANSFORM
- type CmsICCHeader
- type CmsInfoType
- type CmsTagBase
- type CmsTagEntry
- type CmsToneCurve
- func AllocateToneCurveStruct(mm mem.Manager, ContextID CmsContext, nEntries uint32, nSegments uint32, ...) *CmsToneCurve
- func Build_sRGBGamma(mm mem.Manager, ContextID CmsContext) *CmsToneCurve
- func CmsBuildGamma(mm mem.Manager, ContextID CmsContext, Gamma float64) *CmsToneCurve
- func ComputeKToLstar(mm mem.Manager, ContextID CmsContext, nPoints uint32, nProfiles uint32, ...) *CmsToneCurve
- func ConvertToToneCurveArray(curves []*CmsToneCurve) [3]*CmsToneCurve
- func ReadEmbeddedCurve(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER) *CmsToneCurve
- func ReadSegmentedCurve(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER) *CmsToneCurve
- type Curves16Data
- type FILEMEM
- type FILENULL
- type FormatterAlphaFn
- type GAMUTCHAIN
- type GrayOnlyParams
- type ISOTEMPERATURE
- type Lerp16Fn
- type MatShaper8Data
- type PluginIntrfc
- type PositionTableEntryFn
- type Prelin8Data
- type Prelin16Data
- type PreserveKPlaneParams
Constants ¶
const ( MAX_NODES_IN_CURVE = 4097 MINUS_INF = 1e22 // Floating-point constant PLUS_INF = 1e22 // Floating-point constant )
----------------------------------------------------------------- Implementation Maxim number of nodes
const ( InpAdj = float64(1.0 / MAX_ENCODEABLE_XYZ) // (65536.0 / (65535.0 * 2.0)) OutpAdj = float64(MAX_ENCODEABLE_XYZ) // ((2.0 * 65535.0) / 65536.0) )
Factors to convert from 1.15 fixed point to 0..1.0 range and vice-versa
const ( INTENT_PERCEPTUAL = iota INTENT_RELATIVE_COLORIMETRIC INTENT_SATURATION INTENT_ABSOLUTE_COLORIMETRIC )
//////////////////LCMS placeholders//////////////////////// ICC Intents
const ( 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 )
Non-ICC intents
const ( LCMS_USED_AS_INPUT = 0 LCMS_USED_AS_OUTPUT = 1 LCMS_USED_AS_PROOF = 2 )
How profiles may be used
const ( CmsAT_BEGIN cmsStageLoc = iota CmsAT_END )
const ( CmsPERCEPTUAL_BLACK_X = 0.00336 CmsPERCEPTUAL_BLACK_Y = 0.0034731 CmsPERCEPTUAL_BLACK_Z = 0.00287 )
V4 perceptual black
const ( 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 )
Pixel types Pixel type constants
const ( CmsFLAGS_NOCACHE = 0x0040 // Inhibit 1-pixel cache CmsFLAGS_NOOPTIMIZE = 0x0100 // Inhibit optimizations CmsFLAGS_NULLTRANSFORM = 0x0200 // Don't transform anyway // Proofing flags CmsFLAGS_GAMUTCHECK = 0x1000 // Out of Gamut alarm CmsFLAGS_SOFTPROOFING = 0x4000 // Do softproofing // Misc CmsFLAGS_BLACKPOINTCOMPENSATION = 0x2000 // Black point compensation CmsFLAGS_NOWHITEONWHITEFIXUP = 0x0004 // Don't fix scum dot CmsFLAGS_HIGHRESPRECALC = 0x0400 // Use more memory for better accuracy CmsFLAGS_LOWRESPRECALC = 0x0800 // Use less memory to minimize resources // For devicelink creation CmsFLAGS_8BITS_DEVICELINK = 0x0008 // Create 8-bit devicelinks CmsFLAGS_GUESSDEVICECLASS = 0x0020 // Guess device class for transform2devicelink CmsFLAGS_KEEP_SEQUENCE = 0x0080 // Keep profile sequence for devicelink creation // Specific to particular optimizations CmsFLAGS_FORCE_CLUT = 0x0002 // Force CLUT optimization CmsFLAGS_CLUT_POST_LINEARIZATION = 0x0001 // Create postlinearization tables if possible CmsFLAGS_CLUT_PRE_LINEARIZATION = 0x0010 // Create prelinearization tables if possible // Specific to unbounded mode CmsFLAGS_NONEGATIVES = 0x8000 // Prevent negative numbers in floating-point transforms // Copy alpha channels when transforming CmsFLAGS_COPY_ALPHA = 0x04000000 // Alpha channels are copied on CmsDoTransform() // Fine-tune control over number of gridpoints CmsFLAGS_GRIDPOINTS_MASK = 0xFF CmsFLAGS_GRIDPOINTS_SHIFT = 16 // CRD special CmsFLAGS_NODEFAULTRESOURCEDEF = 0x01000000 // No default resource definitions )
Flags
const ( CmsSigChromaticityType cmsTagTypeSignature = 0x6368726D // 'chrm' CmsSigcicpType cmsTagTypeSignature = 0x63696370 // 'cicp' CmsSigColorantOrderType cmsTagTypeSignature = 0x636C726F // 'clro' CmsSigColorantTableType cmsTagTypeSignature = 0x636C7274 // 'clrt' CmsSigCrdInfoType cmsTagTypeSignature = 0x63726469 // 'crdi' CmsSigCurveType cmsTagTypeSignature = 0x63757276 // 'curv' CmsSigDataType cmsTagTypeSignature = 0x64617461 // 'data' CmsSigDictType cmsTagTypeSignature = 0x64696374 // 'dict' CmsSigDateTimeType cmsTagTypeSignature = 0x6474696D // 'dtim' CmsSigDeviceSettingsType cmsTagTypeSignature = 0x64657673 // 'devs' CmsSigLut16Type cmsTagTypeSignature = 0x6d667432 // 'mft2' CmsSigLut8Type cmsTagTypeSignature = 0x6d667431 // 'mft1' CmsSigLutAtoBType cmsTagTypeSignature = 0x6d414220 // 'mAB ' CmsSigLutBtoAType cmsTagTypeSignature = 0x6d424120 // 'mBA ' CmsSigMeasurementType cmsTagTypeSignature = 0x6D656173 // 'meas' CmsSigMultiLocalizedUnicodeType cmsTagTypeSignature = 0x6D6C7563 // 'mluc' CmsSigMultiProcessElementType cmsTagTypeSignature = 0x6D706574 // 'mpet' CmsSigNamedColorType cmsTagTypeSignature = 0x6E636f6C // 'ncol' -- DEPRECATED! CmsSigNamedColor2Type cmsTagTypeSignature = 0x6E636C32 // 'ncl2' CmsSigParametricCurveType cmsTagTypeSignature = 0x70617261 // 'para' CmsSigProfileSequenceDescType cmsTagTypeSignature = 0x70736571 // 'pseq' CmsSigProfileSequenceIdType cmsTagTypeSignature = 0x70736964 // 'psid' CmsSigResponseCurveSet16Type cmsTagTypeSignature = 0x72637332 // 'rcs2' CmsSigS15Fixed16ArrayType cmsTagTypeSignature = 0x73663332 // 'sf32' CmsSigScreeningType cmsTagTypeSignature = 0x7363726E // 'scrn' CmsSigSignatureType cmsTagTypeSignature = 0x73696720 // 'sig ' CmsSigTextType cmsTagTypeSignature = 0x74657874 // 'text' CmsSigTextDescriptionType cmsTagTypeSignature = 0x64657363 // 'desc' CmsSigU16Fixed16ArrayType cmsTagTypeSignature = 0x75663332 // 'uf32' CmsSigUcrBgType cmsTagTypeSignature = 0x62666420 // 'bfd ' CmsSigUInt16ArrayType cmsTagTypeSignature = 0x75693136 // 'ui16' CmsSigUInt32ArrayType cmsTagTypeSignature = 0x75693332 // 'ui32' CmsSigUInt64ArrayType cmsTagTypeSignature = 0x75693634 // 'ui64' CmsSigUInt8ArrayType cmsTagTypeSignature = 0x75693038 // 'ui08' CmsSigVcgtType cmsTagTypeSignature = 0x76636774 // 'vcgt' CmsSigViewingConditionsType cmsTagTypeSignature = 0x76696577 // 'view' CmsSigXYZType cmsTagTypeSignature = 0x58595A20 // 'XYZ ' )
cmsTagTypeSignature represents the base ICC type definitions. Base ICC type definitions
const ( CmsSigAToB0Tag cmsTagSignature = 0x41324230 // 'A2B0' CmsSigAToB1Tag cmsTagSignature = 0x41324231 // 'A2B1' CmsSigAToB2Tag cmsTagSignature = 0x41324232 // 'A2B2' CmsSigBlueColorantTag cmsTagSignature = 0x6258595A // 'bXYZ' CmsSigBlueMatrixColumnTag cmsTagSignature = 0x6258595A // 'bXYZ' CmsSigBlueTRCTag cmsTagSignature = 0x62545243 // 'bTRC' CmsSigBToA0Tag cmsTagSignature = 0x42324130 // 'B2A0' CmsSigBToA1Tag cmsTagSignature = 0x42324131 // 'B2A1' CmsSigBToA2Tag cmsTagSignature = 0x42324132 // 'B2A2' CmsSigCalibrationDateTimeTag cmsTagSignature = 0x63616C74 // 'calt' CmsSigCharTargetTag cmsTagSignature = 0x74617267 // 'targ' CmsSigChromaticAdaptationTag cmsTagSignature = 0x63686164 // 'chad' CmsSigChromaticityTag cmsTagSignature = 0x6368726D // 'chrm' CmsSigColorantOrderTag cmsTagSignature = 0x636C726F // 'clro' CmsSigColorantTableTag cmsTagSignature = 0x636C7274 // 'clrt' CmsSigColorantTableOutTag cmsTagSignature = 0x636C6F74 // 'clot' CmsSigColorimetricIntentImageStateTag cmsTagSignature = 0x63696973 // 'ciis' CmsSigCopyrightTag cmsTagSignature = 0x63707274 // 'cprt' CmsSigCrdInfoTag cmsTagSignature = 0x63726469 // 'crdi' CmsSigDataTag cmsTagSignature = 0x64617461 // 'data' CmsSigDateTimeTag cmsTagSignature = 0x6474696D // 'dtim' CmsSigDeviceMfgDescTag cmsTagSignature = 0x646D6E64 // 'dmnd' CmsSigDeviceModelDescTag cmsTagSignature = 0x646D6464 // 'dmdd' CmsSigDeviceSettingsTag cmsTagSignature = 0x64657673 // 'devs' CmsSigDToB0Tag cmsTagSignature = 0x44324230 // 'D2B0' CmsSigDToB1Tag cmsTagSignature = 0x44324231 // 'D2B1' CmsSigDToB2Tag cmsTagSignature = 0x44324232 // 'D2B2' CmsSigDToB3Tag cmsTagSignature = 0x44324233 // 'D2B3' CmsSigBToD0Tag cmsTagSignature = 0x42324430 // 'B2D0' CmsSigBToD1Tag cmsTagSignature = 0x42324431 // 'B2D1' CmsSigBToD2Tag cmsTagSignature = 0x42324432 // 'B2D2' CmsSigBToD3Tag cmsTagSignature = 0x42324433 // 'B2D3' CmsSigGamutTag cmsTagSignature = 0x67616D74 // 'gamt' CmsSigGrayTRCTag cmsTagSignature = 0x6b545243 // 'kTRC' CmsSigGreenColorantTag cmsTagSignature = 0x6758595A // 'gXYZ' CmsSigGreenMatrixColumnTag cmsTagSignature = 0x6758595A // 'gXYZ' CmsSigGreenTRCTag cmsTagSignature = 0x67545243 // 'gTRC' CmsSigLuminanceTag cmsTagSignature = 0x6C756D69 // 'lumi' CmsSigMeasurementTag cmsTagSignature = 0x6D656173 // 'meas' CmsSigMediaBlackPointTag cmsTagSignature = 0x626B7074 // 'bkpt' CmsSigMediaWhitePointTag cmsTagSignature = 0x77747074 // 'wtpt' CmsSigNamedColorTag cmsTagSignature = 0x6E636F6C // 'ncol' // Deprecated by the ICC CmsSigNamedColor2Tag cmsTagSignature = 0x6E636C32 // 'ncl2' CmsSigOutputResponseTag cmsTagSignature = 0x72657370 // 'resp' CmsSigPerceptualRenderingIntentGamutTag cmsTagSignature = 0x72696730 // 'rig0' CmsSigPreview0Tag cmsTagSignature = 0x70726530 // 'pre0' CmsSigPreview1Tag cmsTagSignature = 0x70726531 // 'pre1' CmsSigPreview2Tag cmsTagSignature = 0x70726532 // 'pre2' CmsSigProfileDescriptionTag cmsTagSignature = 0x64657363 // 'desc' CmsSigProfileDescriptionMLTag cmsTagSignature = 0x6473636D // 'dscm' CmsSigProfileSequenceDescTag cmsTagSignature = 0x70736571 // 'pseq' CmsSigProfileSequenceIdTag cmsTagSignature = 0x70736964 // 'psid' CmsSigPs2CRD0Tag cmsTagSignature = 0x70736430 // 'psd0' CmsSigPs2CRD1Tag cmsTagSignature = 0x70736431 // 'psd1' CmsSigPs2CRD2Tag cmsTagSignature = 0x70736432 // 'psd2' CmsSigPs2CRD3Tag cmsTagSignature = 0x70736433 // 'psd3' CmsSigPs2CSATag cmsTagSignature = 0x70733273 // 'ps2s' CmsSigPs2RenderingIntentTag cmsTagSignature = 0x70733269 // 'ps2i' CmsSigRedColorantTag cmsTagSignature = 0x7258595A // 'rXYZ' CmsSigRedMatrixColumnTag cmsTagSignature = 0x7258595A // 'rXYZ' CmsSigRedTRCTag cmsTagSignature = 0x72545243 // 'rTRC' CmsSigSaturationRenderingIntentGamutTag cmsTagSignature = 0x72696732 // 'rig2' CmsSigScreeningDescTag cmsTagSignature = 0x73637264 // 'scrd' CmsSigScreeningTag cmsTagSignature = 0x7363726E // 'scrn' CmsSigTechnologyTag cmsTagSignature = 0x74656368 // 'tech' CmsSigUcrBgTag cmsTagSignature = 0x62666420 // 'bfd ' CmsSigViewingCondDescTag cmsTagSignature = 0x76756564 // 'vued' CmsSigViewingConditionsTag cmsTagSignature = 0x76696577 // 'view' CmsSigVcgtTag cmsTagSignature = 0x76636774 // 'vcgt' CmsSigMetaTag cmsTagSignature = 0x6D657461 // 'meta' CmsSigcicpTag cmsTagSignature = 0x63696370 // 'cicp' CmsSigArgyllArtsTag cmsTagSignature = 0x61727473 // 'arts' )
Base ICC tag definitions
const ( CmsSigXYZData cmsColorSpaceSignature = 0x58595A20 // 'XYZ ' CmsSigLabData cmsColorSpaceSignature = 0x4C616220 // 'Lab ' CmsSigLuvData cmsColorSpaceSignature = 0x4C757620 // 'Luv ' CmsSigYCbCrData cmsColorSpaceSignature = 0x59436272 // 'YCbr' CmsSigYxyData cmsColorSpaceSignature = 0x59787920 // 'Yxy ' CmsSigRgbData cmsColorSpaceSignature = 0x52474220 // 'RGB ' CmsSigGrayData cmsColorSpaceSignature = 0x47524159 // 'GRAY' CmsSigHsvData cmsColorSpaceSignature = 0x48535620 // 'HSV ' CmsSigHlsData cmsColorSpaceSignature = 0x484C5320 // 'HLS ' CmsSigCmykData cmsColorSpaceSignature = 0x434D594B // 'CMYK' CmsSigCmyData cmsColorSpaceSignature = 0x434D5920 // 'CMY ' CmsSigMCH1Data cmsColorSpaceSignature = 0x4D434831 // 'MCH1' CmsSigMCH2Data cmsColorSpaceSignature = 0x4D434832 // 'MCH2' CmsSigMCH3Data cmsColorSpaceSignature = 0x4D434833 // 'MCH3' CmsSigMCH4Data cmsColorSpaceSignature = 0x4D434834 // 'MCH4' CmsSigMCH5Data cmsColorSpaceSignature = 0x4D434835 // 'MCH5' CmsSigMCH6Data cmsColorSpaceSignature = 0x4D434836 // 'MCH6' CmsSigMCH7Data cmsColorSpaceSignature = 0x4D434837 // 'MCH7' CmsSigMCH8Data cmsColorSpaceSignature = 0x4D434838 // 'MCH8' CmsSigMCH9Data cmsColorSpaceSignature = 0x4D434839 // 'MCH9' CmsSigMCHAData cmsColorSpaceSignature = 0x4D434841 // 'MCHA' CmsSigMCHBData cmsColorSpaceSignature = 0x4D434842 // 'MCHB' CmsSigMCHCData cmsColorSpaceSignature = 0x4D434843 // 'MCHC' CmsSigMCHDData cmsColorSpaceSignature = 0x4D434844 // 'MCHD' CmsSigMCHEData cmsColorSpaceSignature = 0x4D434845 // 'MCHE' CmsSigMCHFData cmsColorSpaceSignature = 0x4D434846 // 'MCHF' CmsSigNamedData cmsColorSpaceSignature = 0x6E6D636C // 'nmcl' CmsSig1colorData cmsColorSpaceSignature = 0x31434C52 // '1CLR' CmsSig2colorData cmsColorSpaceSignature = 0x32434C52 // '2CLR' CmsSig3colorData cmsColorSpaceSignature = 0x33434C52 // '3CLR' CmsSig4colorData cmsColorSpaceSignature = 0x34434C52 // '4CLR' CmsSig5colorData cmsColorSpaceSignature = 0x35434C52 // '5CLR' CmsSig6colorData cmsColorSpaceSignature = 0x36434C52 // '6CLR' CmsSig7colorData cmsColorSpaceSignature = 0x37434C52 // '7CLR' CmsSig8colorData cmsColorSpaceSignature = 0x38434C52 // '8CLR' CmsSig9colorData cmsColorSpaceSignature = 0x39434C52 // '9CLR' CmsSig10colorData cmsColorSpaceSignature = 0x41434C52 // 'ACLR' CmsSig11colorData cmsColorSpaceSignature = 0x42434C52 // 'BCLR' CmsSig12colorData cmsColorSpaceSignature = 0x43434C52 // 'CCLR' CmsSig13colorData cmsColorSpaceSignature = 0x44434C52 // 'DCLR' CmsSig14colorData cmsColorSpaceSignature = 0x45434C52 // 'ECLR' CmsSig15colorData cmsColorSpaceSignature = 0x46434C52 // 'FCLR' CmsSigLuvKData cmsColorSpaceSignature = 0x4C75764B // 'LuvK' )
const ( CmsSigDigitalCamera cmsTechnologySignature = 0x6463616D // 'dcam' CmsSigFilmScanner cmsTechnologySignature = 0x6673636E // 'fscn' CmsSigReflectiveScanner cmsTechnologySignature = 0x7273636E // 'rscn' CmsSigInkJetPrinter cmsTechnologySignature = 0x696A6574 // 'ijet' CmsSigThermalWaxPrinter cmsTechnologySignature = 0x74776178 // 'twax' CmsSigElectrophotographicPrinter cmsTechnologySignature = 0x6570686F // 'epho' CmsSigElectrostaticPrinter cmsTechnologySignature = 0x65737461 // 'esta' CmsSigDyeSublimationPrinter cmsTechnologySignature = 0x64737562 // 'dsub' CmsSigPhotographicPaperPrinter cmsTechnologySignature = 0x7270686F // 'rpho' CmsSigFilmWriter cmsTechnologySignature = 0x6670726E // 'fprn' CmsSigVideoMonitor cmsTechnologySignature = 0x7669646D // 'vidm' CmsSigVideoCamera cmsTechnologySignature = 0x76696463 // 'vidc' CmsSigProjectionTelevision cmsTechnologySignature = 0x706A7476 // 'pjtv' CmsSigCRTDisplay cmsTechnologySignature = 0x43525420 // 'CRT ' CmsSigPMDisplay cmsTechnologySignature = 0x504D4420 // 'PMD ' CmsSigAMDisplay cmsTechnologySignature = 0x414D4420 // 'AMD ' CmsSigPhotoCD cmsTechnologySignature = 0x4B504344 // 'KPCD' CmsSigPhotoImageSetter cmsTechnologySignature = 0x696D6773 // 'imgs' CmsSigGravure cmsTechnologySignature = 0x67726176 // 'grav' CmsSigOffsetLithography cmsTechnologySignature = 0x6F666673 // 'offs' CmsSigSilkscreen cmsTechnologySignature = 0x73696C6B // 'silk' CmsSigFlexography cmsTechnologySignature = 0x666C6578 // 'flex' CmsSigMotionPictureFilmScanner cmsTechnologySignature = 0x6D706673 // 'mpfs' CmsSigMotionPictureFilmRecorder cmsTechnologySignature = 0x6D706672 // 'mpfr' CmsSigDigitalMotionPictureCamera cmsTechnologySignature = 0x646D7063 // 'dmpc' CmsSigDigitalCinemaProjector cmsTechnologySignature = 0x64636A70 // 'dcpj' )
ICC Technology tag
const ( CmsSigCurveSetElemType cmsStageSignature = 0x63767374 // 'cvst' CmsSigMatrixElemType cmsStageSignature = 0x6D617466 // 'matf' CmsSigCLutElemType cmsStageSignature = 0x636C7574 // 'clut' CmsSigBAcsElemType cmsStageSignature = 0x62414353 // 'bACS' CmsSigEAcsElemType cmsStageSignature = 0x65414353 // 'eACS' // Custom from here, not in the ICC Spec CmsSigXYZ2LabElemType cmsStageSignature = 0x6C327820 // 'l2x ' CmsSigLab2XYZElemType cmsStageSignature = 0x78326C20 // 'x2l ' CmsSigNamedColorElemType cmsStageSignature = 0x6E636C20 // 'ncl ' CmsSigLabV2toV4 cmsStageSignature = 0x32203420 // '2 4 ' CmsSigLabV4toV2 cmsStageSignature = 0x34203220 // '4 2 ' // Identities CmsSigIdentityElemType cmsStageSignature = 0x69646E20 // 'idn ' // Float to floatPCS CmsSigLab2FloatPCS cmsStageSignature = 0x64326C20 // 'd2l ' CmsSigFloatPCS2Lab cmsStageSignature = 0x6C326420 // 'l2d ' CmsSigXYZ2FloatPCS cmsStageSignature = 0x64327820 // 'd2x ' CmsSigFloatPCS2XYZ cmsStageSignature = 0x78326420 // 'x2d ' CmsSigClipNegativesElemType cmsStageSignature = 0x636c7020 // 'clp ' )
const ( CmsSigFormulaCurveSeg cmsCurveSegSignature = 0x70617266 // 'parf' CmsSigSampledCurveSeg cmsCurveSegSignature = 0x73616D66 // 'samf' CmsSigSegmentedCurve cmsCurveSegSignature = 0x63757266 // 'curf' )
const ( CmsSigStatusA uint32 = 0x53746141 // 'StaA' CmsSigStatusE uint32 = 0x53746145 // 'StaE' CmsSigStatusI uint32 = 0x53746149 // 'StaI' CmsSigStatusT uint32 = 0x53746154 // 'StaT' CmsSigStatusM uint32 = 0x5374614D // 'StaM' CmsSigDN uint32 = 0x444E2020 // 'DN ' CmsSigDNP uint32 = 0x444E2050 // 'DN P' CmsSigDNN uint32 = 0x444E4E20 // 'DNN ' CmsSigDNNP uint32 = 0x444E4E50 // 'DNNP' )
Used in ResponseCurveType
const ( CmsSigMacintosh cmsPlatformSignature = 0x4150504C // 'APPL' CmsSigMicrosoft cmsPlatformSignature = 0x4D534654 // 'MSFT' CmsSigSolaris cmsPlatformSignature = 0x53554E57 // 'SUNW' CmsSigSGI cmsPlatformSignature = 0x53474920 // 'SGI ' CmsSigTaligent cmsPlatformSignature = 0x54474E54 // 'TGNT' CmsSigUnices cmsPlatformSignature = 0x2A6E6978 // '*nix' // From argyll -- Not official )
const ( CmsSigInputClass cmsProfileClassSignature = 0x73636E72 // 'scnr' CmsSigDisplayClass cmsProfileClassSignature = 0x6D6E7472 // 'mntr' CmsSigOutputClass cmsProfileClassSignature = 0x70727472 // 'prtr' CmsSigLinkClass cmsProfileClassSignature = 0x6C696E6B // 'link' CmsSigAbstractClass cmsProfileClassSignature = 0x61627374 // 'abst' CmsSigColorSpaceClass cmsProfileClassSignature = 0x73706163 // 'spac' CmsSigNamedColorClass cmsProfileClassSignature = 0x6E6D636C // 'nmcl' )
const ( UserPtr cmsMemoryClient = iota Logger AlarmCodesContext AdaptationStateContext MemPlugin InterpPlugin CurvesPlugin FormattersPlugin TagTypePlugin TagPlugin IntentPlugin MPEPlugin OptimizationPlugin TransformPlugin MutexPlugin ParallelizationPlugin MemoryClientMax // Last in the list )
const ( VX = 0 VY = 1 VZ = 2 )
Constants
const ( CMS_LERP_FLAGS_16BITS uint32 = 0x0000 // Default CMS_LERP_FLAGS_FLOAT uint32 = 0x0001 // Floating-point implementation required CMS_LERP_FLAGS_TRILINEAR uint32 = 0x0100 // Hint for trilinear interpolation )
Constants for interpolation flags
const ( // Matches LCMS_VERSION macro (e.g., 2150 for 2.15) LCMSUpstreamEncoded = 2150 LCMSUpstreamMajor = 2 LCMSUpstreamMinor = 15 LCMSUpstreamPatch = 0 )
const CMS_PACK_FLAGS_16BITS = 0x0000
const CMS_PACK_FLAGS_FLOAT = 0x0001
CMS_PTR_ALIGNMENT determines the pointer alignment for the platform For most architectures, this is equal to the size of a pointer.
const CmsMagicNumber = 0x61637370 // 'acsp'
Definitions in ICC spec
const DEFAULT_OBSERVER_ADAPTATION_STATE = 1.0
Constants
const ERR_THRESHOLD = 5
const INVERSION_MAX_ITERATIONS = 30
const JACOBIAN_EPSILON = 0.001
const LCMS_VERSION = 2150
const MATRIX_DET_TOLERANCE = 0.0001
Determinant lower than that are assumed zero (used on matrix invert)
const MAX_ENCODEABLE_XYZ = float64(1.0 + 32767.0/32768.0)
Maximum encodeable values in floating point
const MAX_ENCODEABLE_ab2 = float64((65535.0 / 256.0) - 128.0)
const MAX_ENCODEABLE_ab4 = float64(127.0)
const MAX_INPUT_DIMENSIONS = 15
Maximum input dimensions for interpolation
const MAX_MEMORY_FOR_ALLOC = 512 * 1024 * 1024 // 512MB
Maximum allowed memory allocation (equivalent to MAX_MEMORY_FOR_ALLOC in C)
const MAX_STAGE_CHANNELS = 128
Maximum of channels for internal pipeline evaluation
const MAX_TABLE_TAG = 100
cmsICCPROFILE represents the Go version of the C structure. Maximum supported tags in a profile
const MAX_TYPES_IN_LCMS_PLUGIN = 20
---------------------------------------------------------------------------------------------------------- Maximum number of types in a plugin array
const MIN_ENCODEABLE_ab2 = float64(-128.0)
const MIN_ENCODEABLE_ab4 = float64(-128.0)
const M_LOG10E = 0.434294481903251827651
const PRELINEARIZATION_POINTS = 4096
const SAMPLER_INSPECT = 0x01000000
Use this flag to prevent changes being written to destination
Variables ¶
var ( Device2PCS16 = []cmsTagSignature{ CmsSigAToB0Tag, CmsSigAToB1Tag, CmsSigAToB2Tag, CmsSigAToB1Tag, } Device2PCSFloat = []cmsTagSignature{ CmsSigDToB0Tag, CmsSigDToB1Tag, CmsSigDToB2Tag, CmsSigDToB3Tag, } PCS2Device16 = []cmsTagSignature{ CmsSigBToA0Tag, CmsSigBToA1Tag, CmsSigBToA2Tag, CmsSigBToA1Tag, } PCS2DeviceFloat = []cmsTagSignature{ CmsSigBToD0Tag, CmsSigBToD1Tag, CmsSigBToD2Tag, CmsSigBToD3Tag, } )
LUT tags
var ( GrayInputMatrix = []float64{ InpAdj * cmsD50X, InpAdj * cmsD50Y, InpAdj * cmsD50Z, } OneToThreeInputMatrix = []float64{ 1, 1, 1, } PickYMatrix = []float64{ 0, OutpAdj * cmsD50Y, 0, } PickLstarMatrix = []float64{ 1, 0, 0, } )
Several resources for gray conversions
var ( // Flags for pixel format ANYSPACE = COLORSPACE_SH(31) ANYCHANNELS = CHANNELS_SH(15) ANYEXTRA = EXTRA_SH(7) ANYPLANAR = PLANAR_SH(1) ANYENDIAN = ENDIAN16_SH(1) ANYSWAP = DOSWAP_SH(1) ANYSWAPFIRST = SWAPFIRST_SH(1) ANYFLAVOR = FLAVOR_SH(1) ANYPREMUL = PREMUL_SH(1) )
var ( TYPE_GRAY_8 = COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(1) TYPE_GRAY_8_REV = COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(1) | FLAVOR_SH(1) TYPE_GRAY_16 = COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(2) TYPE_GRAY_16_REV = COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(2) | FLAVOR_SH(1) TYPE_GRAY_16_SE = COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_GRAYA_8 = COLORSPACE_SH(PT_GRAY) | EXTRA_SH(1) | CHANNELS_SH(1) | BYTES_SH(1) TYPE_GRAYA_8_PREMUL = COLORSPACE_SH(PT_GRAY) | EXTRA_SH(1) | CHANNELS_SH(1) | BYTES_SH(1) | PREMUL_SH(1) TYPE_GRAYA_16 = COLORSPACE_SH(PT_GRAY) | EXTRA_SH(1) | CHANNELS_SH(1) | BYTES_SH(2) TYPE_GRAYA_16_PREMUL = COLORSPACE_SH(PT_GRAY) | EXTRA_SH(1) | CHANNELS_SH(1) | BYTES_SH(2) | PREMUL_SH(1) TYPE_GRAYA_16_SE = COLORSPACE_SH(PT_GRAY) | EXTRA_SH(1) | CHANNELS_SH(1) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_GRAYA_8_PLANAR = COLORSPACE_SH(PT_GRAY) | EXTRA_SH(1) | CHANNELS_SH(1) | BYTES_SH(1) | PLANAR_SH(1) TYPE_GRAYA_16_PLANAR = COLORSPACE_SH(PT_GRAY) | EXTRA_SH(1) | CHANNELS_SH(1) | BYTES_SH(2) | PLANAR_SH(1) TYPE_RGB_8 = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(1) TYPE_RGB_8_PLANAR = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(1) | PLANAR_SH(1) TYPE_BGR_8 = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(1) | DOSWAP_SH(1) TYPE_BGR_8_PLANAR = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(1) | DOSWAP_SH(1) | PLANAR_SH(1) TYPE_RGB_16 = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_RGB_16_PLANAR = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(2) | PLANAR_SH(1) TYPE_RGB_16_SE = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_BGR_16 = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_BGR_16_PLANAR = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(2) | DOSWAP_SH(1) | PLANAR_SH(1) TYPE_BGR_16_SE = COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(2) | DOSWAP_SH(1) | ENDIAN16_SH(1) TYPE_RGBA_8 = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(1) TYPE_RGBA_8_PREMUL = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(1) | PREMUL_SH(1) TYPE_RGBA_8_PLANAR = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(1) | PLANAR_SH(1) TYPE_RGBA_16 = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_RGBA_16_PREMUL = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(2) | PREMUL_SH(1) TYPE_RGBA_16_PLANAR = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(2) | PLANAR_SH(1) TYPE_RGBA_16_SE = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_ARGB_8 = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(1) | SWAPFIRST_SH(1) TYPE_ARGB_8_PREMUL = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(1) | SWAPFIRST_SH(1) | PREMUL_SH(1) TYPE_ARGB_16 = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(2) | SWAPFIRST_SH(1) TYPE_ARGB_16_PREMUL = COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(2) | SWAPFIRST_SH(1) | PREMUL_SH(1) TYPE_CMY_8 = COLORSPACE_SH(PT_CMY) | CHANNELS_SH(3) | BYTES_SH(1) TYPE_CMY_8_PLANAR = COLORSPACE_SH(PT_CMY) | CHANNELS_SH(3) | BYTES_SH(1) | PLANAR_SH(1) TYPE_CMY_16 = COLORSPACE_SH(PT_CMY) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_CMY_16_PLANAR = COLORSPACE_SH(PT_CMY) | CHANNELS_SH(3) | BYTES_SH(2) | PLANAR_SH(1) TYPE_CMY_16_SE = COLORSPACE_SH(PT_CMY) | CHANNELS_SH(3) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_CMYK_8 = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(1) TYPE_CMYKA_8 = (PT_CMYK) | EXTRA_SH(1) | CHANNELS_SH(4) | BYTES_SH(1) TYPE_CMYK_8_REV = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(1) | FLAVOR_SH(1) TYPE_YUVK_8 = TYPE_CMYK_8_REV TYPE_CMYK_8_PLANAR = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(1) | PLANAR_SH(1) TYPE_CMYK_16 = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) TYPE_CMYK_16_REV = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) | FLAVOR_SH(1) TYPE_YUVK_16 = TYPE_CMYK_16_REV TYPE_CMYK_16_PLANAR = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) | PLANAR_SH(1) TYPE_CMYK_16_SE = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_KYMC_8 = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(1) | DOSWAP_SH(1) TYPE_KYMC_16 = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_KYMC_16_SE = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) | DOSWAP_SH(1) | ENDIAN16_SH(1) TYPE_KCMY_8 = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(1) | SWAPFIRST_SH(1) TYPE_KCMY_8_REV = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(1) | FLAVOR_SH(1) | SWAPFIRST_SH(1) TYPE_KCMY_16 = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) | SWAPFIRST_SH(1) TYPE_KCMY_16_REV = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) | FLAVOR_SH(1) | SWAPFIRST_SH(1) TYPE_KCMY_16_SE = COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) | ENDIAN16_SH(1) | SWAPFIRST_SH(1) TYPE_CMYK5_8 = COLORSPACE_SH(PT_MCH5) | CHANNELS_SH(5) | BYTES_SH(1) TYPE_CMYK5_16 = COLORSPACE_SH(PT_MCH5) | CHANNELS_SH(5) | BYTES_SH(2) TYPE_CMYK5_16_SE = COLORSPACE_SH(PT_MCH5) | CHANNELS_SH(5) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_KYMC5_8 = COLORSPACE_SH(PT_MCH5) | CHANNELS_SH(5) | BYTES_SH(1) | DOSWAP_SH(1) TYPE_KYMC5_16 = COLORSPACE_SH(PT_MCH5) | CHANNELS_SH(5) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_KYMC5_16_SE = COLORSPACE_SH(PT_MCH5) | CHANNELS_SH(5) | BYTES_SH(2) | DOSWAP_SH(1) | ENDIAN16_SH(1) TYPE_CMYK6_8 = COLORSPACE_SH(PT_MCH6) | CHANNELS_SH(6) | BYTES_SH(1) TYPE_CMYK6_8_PLANAR = COLORSPACE_SH(PT_MCH6) | CHANNELS_SH(6) | BYTES_SH(1) | PLANAR_SH(1) TYPE_CMYK6_16 = COLORSPACE_SH(PT_MCH6) | CHANNELS_SH(6) | BYTES_SH(2) TYPE_CMYK6_16_PLANAR = COLORSPACE_SH(PT_MCH6) | CHANNELS_SH(6) | BYTES_SH(2) | PLANAR_SH(1) TYPE_CMYK6_16_SE = COLORSPACE_SH(PT_MCH6) | CHANNELS_SH(6) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_CMYK7_8 = COLORSPACE_SH(PT_MCH7) | CHANNELS_SH(7) | BYTES_SH(1) TYPE_CMYK7_16 = COLORSPACE_SH(PT_MCH7) | CHANNELS_SH(7) | BYTES_SH(2) TYPE_CMYK7_16_SE = COLORSPACE_SH(PT_MCH7) | CHANNELS_SH(7) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_KYMC7_8 = COLORSPACE_SH(PT_MCH7) | CHANNELS_SH(7) | BYTES_SH(1) | DOSWAP_SH(1) TYPE_KYMC7_16 = COLORSPACE_SH(PT_MCH7) | CHANNELS_SH(7) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_KYMC7_16_SE = COLORSPACE_SH(PT_MCH7) | CHANNELS_SH(7) | BYTES_SH(2) | DOSWAP_SH(1) | ENDIAN16_SH(1) TYPE_CMYK8_8 = COLORSPACE_SH(PT_MCH8) | CHANNELS_SH(8) | BYTES_SH(1) TYPE_CMYK8_16 = COLORSPACE_SH(PT_MCH8) | CHANNELS_SH(8) | BYTES_SH(2) TYPE_CMYK8_16_SE = COLORSPACE_SH(PT_MCH8) | CHANNELS_SH(8) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_KYMC8_8 = COLORSPACE_SH(PT_MCH8) | CHANNELS_SH(8) | BYTES_SH(1) | DOSWAP_SH(1) TYPE_KYMC8_16 = COLORSPACE_SH(PT_MCH8) | CHANNELS_SH(8) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_KYMC8_16_SE = COLORSPACE_SH(PT_MCH8) | CHANNELS_SH(8) | BYTES_SH(2) | DOSWAP_SH(1) | ENDIAN16_SH(1) TYPE_CMYK9_8 = COLORSPACE_SH(PT_MCH9) | CHANNELS_SH(9) | BYTES_SH(1) TYPE_CMYK9_16 = COLORSPACE_SH(PT_MCH9) | CHANNELS_SH(9) | BYTES_SH(2) TYPE_CMYK9_16_SE = COLORSPACE_SH(PT_MCH9) | CHANNELS_SH(9) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_KYMC9_8 = COLORSPACE_SH(PT_MCH9) | CHANNELS_SH(9) | BYTES_SH(1) | DOSWAP_SH(1) TYPE_KYMC9_16 = COLORSPACE_SH(PT_MCH9) | CHANNELS_SH(9) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_KYMC9_16_SE = COLORSPACE_SH(PT_MCH9) | CHANNELS_SH(9) | BYTES_SH(2) | DOSWAP_SH(1) | ENDIAN16_SH(1) TYPE_CMYK10_8 = COLORSPACE_SH(PT_MCH10) | CHANNELS_SH(10) | BYTES_SH(1) TYPE_CMYK10_16 = COLORSPACE_SH(PT_MCH10) | CHANNELS_SH(10) | BYTES_SH(2) TYPE_CMYK10_16_SE = COLORSPACE_SH(PT_MCH10) | CHANNELS_SH(10) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_KYMC10_8 = COLORSPACE_SH(PT_MCH10) | CHANNELS_SH(10) | BYTES_SH(1) | DOSWAP_SH(1) TYPE_KYMC10_16 = COLORSPACE_SH(PT_MCH10) | CHANNELS_SH(10) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_KYMC10_16_SE = COLORSPACE_SH(PT_MCH10) | CHANNELS_SH(10) | BYTES_SH(2) | DOSWAP_SH(1) | ENDIAN16_SH(1) TYPE_CMYK11_8 = COLORSPACE_SH(PT_MCH11) | CHANNELS_SH(11) | BYTES_SH(1) TYPE_CMYK11_16 = COLORSPACE_SH(PT_MCH11) | CHANNELS_SH(11) | BYTES_SH(2) TYPE_CMYK11_16_SE = COLORSPACE_SH(PT_MCH11) | CHANNELS_SH(11) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_KYMC11_8 = COLORSPACE_SH(PT_MCH11) | CHANNELS_SH(11) | BYTES_SH(1) | DOSWAP_SH(1) TYPE_KYMC11_16 = COLORSPACE_SH(PT_MCH11) | CHANNELS_SH(11) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_KYMC11_16_SE = COLORSPACE_SH(PT_MCH11) | CHANNELS_SH(11) | BYTES_SH(2) | DOSWAP_SH(1) | ENDIAN16_SH(1) TYPE_CMYK12_8 = COLORSPACE_SH(PT_MCH12) | CHANNELS_SH(12) | BYTES_SH(1) TYPE_CMYK12_16 = COLORSPACE_SH(PT_MCH12) | CHANNELS_SH(12) | BYTES_SH(2) TYPE_CMYK12_16_SE = COLORSPACE_SH(PT_MCH12) | CHANNELS_SH(12) | BYTES_SH(2) | ENDIAN16_SH(1) TYPE_KYMC12_8 = COLORSPACE_SH(PT_MCH12) | CHANNELS_SH(12) | BYTES_SH(1) | DOSWAP_SH(1) TYPE_KYMC12_16 = COLORSPACE_SH(PT_MCH12) | CHANNELS_SH(12) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_KYMC12_16_SE = COLORSPACE_SH(PT_MCH12) | CHANNELS_SH(12) | BYTES_SH(2) | DOSWAP_SH(1) | ENDIAN16_SH(1) // Colorimetric TYPE_XYZ_16 = COLORSPACE_SH(PT_XYZ) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_Lab_8 = COLORSPACE_SH(PT_Lab) | CHANNELS_SH(3) | BYTES_SH(1) TYPE_LabV2_8 = COLORSPACE_SH(PT_LabV2) | CHANNELS_SH(3) | BYTES_SH(1) TYPE_ALab_8 = COLORSPACE_SH(PT_Lab) | CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1) | SWAPFIRST_SH(1) TYPE_ALabV2_8 = COLORSPACE_SH(PT_LabV2) | CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1) | SWAPFIRST_SH(1) TYPE_Lab_16 = COLORSPACE_SH(PT_Lab) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_LabV2_16 = COLORSPACE_SH(PT_LabV2) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_Yxy_16 = COLORSPACE_SH(PT_Yxy) | CHANNELS_SH(3) | BYTES_SH(2) // YCbCr TYPE_YCbCr_8 = COLORSPACE_SH(PT_YCbCr) | CHANNELS_SH(3) | BYTES_SH(1) TYPE_YCbCr_8_PLANAR = COLORSPACE_SH(PT_YCbCr) | CHANNELS_SH(3) | BYTES_SH(1) | PLANAR_SH(1) TYPE_YCbCr_16 = COLORSPACE_SH(PT_YCbCr) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_YCbCr_16_PLANAR = COLORSPACE_SH(PT_YCbCr) | CHANNELS_SH(3) | BYTES_SH(2) | PLANAR_SH(1) TYPE_YCbCr_16_SE = COLORSPACE_SH(PT_YCbCr) | CHANNELS_SH(3) | BYTES_SH(2) | ENDIAN16_SH(1) // YUV TYPE_YUV_8 = COLORSPACE_SH(PT_YUV) | CHANNELS_SH(3) | BYTES_SH(1) TYPE_YUV_8_PLANAR = COLORSPACE_SH(PT_YUV) | CHANNELS_SH(3) | BYTES_SH(1) | PLANAR_SH(1) TYPE_YUV_16 = COLORSPACE_SH(PT_YUV) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_YUV_16_PLANAR = COLORSPACE_SH(PT_YUV) | CHANNELS_SH(3) | BYTES_SH(2) | PLANAR_SH(1) TYPE_YUV_16_SE = COLORSPACE_SH(PT_YUV) | CHANNELS_SH(3) | BYTES_SH(2) | ENDIAN16_SH(1) // HLS TYPE_HLS_8 = COLORSPACE_SH(PT_HLS) | CHANNELS_SH(3) | BYTES_SH(1) TYPE_HLS_8_PLANAR = COLORSPACE_SH(PT_HLS) | CHANNELS_SH(3) | BYTES_SH(1) | PLANAR_SH(1) TYPE_HLS_16 = COLORSPACE_SH(PT_HLS) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_HLS_16_PLANAR = COLORSPACE_SH(PT_HLS) | CHANNELS_SH(3) | BYTES_SH(2) | PLANAR_SH(1) TYPE_HLS_16_SE = COLORSPACE_SH(PT_HLS) | CHANNELS_SH(3) | BYTES_SH(2) | ENDIAN16_SH(1) // HSV TYPE_HSV_8 = COLORSPACE_SH(PT_HSV) | CHANNELS_SH(3) | BYTES_SH(1) TYPE_HSV_8_PLANAR = COLORSPACE_SH(PT_HSV) | CHANNELS_SH(3) | BYTES_SH(1) | PLANAR_SH(1) TYPE_HSV_16 = COLORSPACE_SH(PT_HSV) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_HSV_16_PLANAR = COLORSPACE_SH(PT_HSV) | CHANNELS_SH(3) | BYTES_SH(2) | PLANAR_SH(1) TYPE_HSV_16_SE = COLORSPACE_SH(PT_HSV) | CHANNELS_SH(3) | BYTES_SH(2) | ENDIAN16_SH(1) )
Define constants using the shift macros
var ( TYPE_XYZ_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_XYZ) | CHANNELS_SH(3) | BYTES_SH(4) TYPE_Lab_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_Lab) | CHANNELS_SH(3) | BYTES_SH(4) TYPE_LabA_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_Lab) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(4) TYPE_GRAY_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(4) TYPE_GRAYA_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(4) | EXTRA_SH(1) TYPE_GRAYA_FLT_PREMUL = FLOAT_SH(1) | COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(4) | EXTRA_SH(1) | PREMUL_SH(1) TYPE_RGB_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(4) TYPE_RGBA_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(4) TYPE_RGBA_FLT_PREMUL = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(4) | PREMUL_SH(1) TYPE_ARGB_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(4) | SWAPFIRST_SH(1) TYPE_ARGB_FLT_PREMUL = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(4) | SWAPFIRST_SH(1) | PREMUL_SH(1) TYPE_BGR_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(4) | DOSWAP_SH(1) TYPE_BGRA_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(4) | DOSWAP_SH(1) | SWAPFIRST_SH(1) TYPE_BGRA_FLT_PREMUL = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(4) | DOSWAP_SH(1) | SWAPFIRST_SH(1) | PREMUL_SH(1) TYPE_ABGR_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(4) | DOSWAP_SH(1) TYPE_ABGR_FLT_PREMUL = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(4) | DOSWAP_SH(1) | PREMUL_SH(1) TYPE_CMYK_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(4) )
Float formatters
var ( TYPE_XYZ_DBL = FLOAT_SH(1) | COLORSPACE_SH(PT_XYZ) | CHANNELS_SH(3) | BYTES_SH(0) TYPE_Lab_DBL = FLOAT_SH(1) | COLORSPACE_SH(PT_Lab) | CHANNELS_SH(3) | BYTES_SH(0) TYPE_GRAY_DBL = FLOAT_SH(1) | COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(0) TYPE_RGB_DBL = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(0) TYPE_BGR_DBL = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(0) | DOSWAP_SH(1) TYPE_CMYK_DBL = FLOAT_SH(1) | COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(0) )
Floating point formatters
var ( TYPE_GRAY_HALF_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_GRAY) | CHANNELS_SH(1) | BYTES_SH(2) TYPE_RGB_HALF_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_RGBA_HALF_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(2) TYPE_CMYK_HALF_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_CMYK) | CHANNELS_SH(4) | BYTES_SH(2) TYPE_ARGB_HALF_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(2) | SWAPFIRST_SH(1) TYPE_BGR_HALF_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(2) | DOSWAP_SH(1) TYPE_BGRA_HALF_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | EXTRA_SH(1) | CHANNELS_SH(3) | BYTES_SH(2) | DOSWAP_SH(1) | SWAPFIRST_SH(1) TYPE_ABGR_HALF_FLT = FLOAT_SH(1) | COLORSPACE_SH(PT_RGB) | CHANNELS_SH(3) | BYTES_SH(2) | DOSWAP_SH(1) )
IEEE 754-2008 "half"
var Base = []uint16{}/* 512 elements not displayed */
var DEFAULT_ALARM_CODES_VALUE = [cmsMAXCHANNELS]uint16{0x7F00, 0x7F00, 0x7F00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
var DOUBLE_TO_1FIXED14 = func(x float64) cmsS1Fixed14Number { return cmsS1Fixed14Number(math.Floor(x*16384.0 + 0.5)) }
var DefaultCurves = cmsParametricCurvesCollection{ NFunctions: 10, FunctionTypes: [MAX_TYPES_IN_LCMS_PLUGIN]uint32{1, 2, 3, 4, 5, 6, 7, 8, 108, 109}, ParameterCount: [MAX_TYPES_IN_LCMS_PLUGIN]uint32{1, 3, 4, 5, 7, 4, 5, 5, 1, 1}, Evaluator: DefaultEvalParametricFn, Next: nil, }
The built-in list
var DefaultIntents []cmsIntentsList
var DefaultOptimization []cmsOptimizationCollection
var Exponent = []uint32{
0x00000000, 0x00800000, 0x01000000, 0x01800000, 0x02000000, 0x02800000,
0x03000000, 0x03800000, 0x04000000, 0x04800000, 0x05000000, 0x05800000,
0x06000000, 0x06800000, 0x07000000, 0x07800000, 0x08000000, 0x08800000,
0x09000000, 0x09800000, 0x0a000000, 0x0a800000, 0x0b000000, 0x0b800000,
0x0c000000, 0x0c800000, 0x0d000000, 0x0d800000, 0x0e000000, 0x0e800000,
0x0f000000, 0x47800000, 0x80000000, 0x80800000, 0x81000000, 0x81800000,
0x82000000, 0x82800000, 0x83000000, 0x83800000, 0x84000000, 0x84800000,
0x85000000, 0x85800000, 0x86000000, 0x86800000, 0x87000000, 0x87800000,
0x88000000, 0x88800000, 0x89000000, 0x89800000, 0x8a000000, 0x8a800000,
0x8b000000, 0x8b800000, 0x8c000000, 0x8c800000, 0x8d000000, 0x8d800000,
0x8e000000, 0x8e800000, 0x8f000000, 0xc7800000}
var FormatterAlpha = [6][6]cmsFormatterAlphaFn{
{copy8, from8to16, from8to16SE, from8toHLF, from8toFLT, from8toDBL},
{from16to8, copy16, from16to16, from16toHLF, from16toFLT, from16toDBL},
{from16SEto8, from16to16, copy16, from16SEtoHLF, from16SEtoFLT, from16SEtoDBL},
{fromHLFto8, fromHLFto16, fromHLFto16SE, copy16, fromHLFtoFLT, fromHLFtoDBL},
{fromFLTto8, fromFLTto16, fromFLTto16SE, fromFLTtoHLF, copy32, fromFLTtoDBL},
{fromDBLto8, fromDBLto16, fromDBLto16SE, fromDBLtoHLF, fromDBLtoFLT, copy64},
}
FormatterAlpha is a static array of functions
var InputFormatters16 = []cmsFormatters16{ {Type: TYPE_Lab_DBL, Mask: ANYPLANAR | ANYEXTRA, Frm: UnrollLabDoubleTo16}, {Type: TYPE_XYZ_DBL, Mask: ANYPLANAR | ANYEXTRA, Frm: UnrollXYZDoubleTo16}, {Type: TYPE_Lab_FLT, Mask: ANYPLANAR | ANYEXTRA, Frm: UnrollLabFloatTo16}, {Type: TYPE_XYZ_FLT, Mask: ANYPLANAR | ANYEXTRA, Frm: UnrollXYZFloatTo16}, {Type: TYPE_GRAY_DBL, Mask: 0, Frm: UnrollDouble1Chan}, {Type: FLOAT_SH(1) | BYTES_SH(0), Mask: ANYCHANNELS | ANYPLANAR | ANYSWAPFIRST | ANYFLAVOR | ANYSWAP | ANYEXTRA | ANYSPACE, Frm: UnrollDoubleTo16}, {Type: FLOAT_SH(1) | BYTES_SH(4), Mask: ANYCHANNELS | ANYPLANAR | ANYSWAPFIRST | ANYFLAVOR | ANYSWAP | ANYEXTRA | ANYSPACE, Frm: UnrollFloatTo16}, {Type: FLOAT_SH(1) | BYTES_SH(2), Mask: ANYCHANNELS | ANYPLANAR | ANYSWAPFIRST | ANYFLAVOR | ANYEXTRA | ANYSWAP | ANYSPACE, Frm: UnrollHalfTo16}, {Type: CHANNELS_SH(1) | BYTES_SH(1), Mask: ANYSPACE, Frm: Unroll1Byte}, {Type: CHANNELS_SH(1) | BYTES_SH(1) | EXTRA_SH(1), Mask: ANYSPACE, Frm: Unroll1ByteSkip1}, {Type: CHANNELS_SH(1) | BYTES_SH(1) | EXTRA_SH(2), Mask: ANYSPACE, Frm: Unroll1ByteSkip2}, {Type: CHANNELS_SH(1) | BYTES_SH(1) | FLAVOR_SH(1), Mask: ANYSPACE, Frm: Unroll1ByteReversed}, {Type: COLORSPACE_SH(PT_MCH2) | CHANNELS_SH(2) | BYTES_SH(1), Mask: 0, Frm: Unroll2Bytes}, {Type: TYPE_LabV2_8, Mask: 0, Frm: UnrollLabV2_8}, {Type: TYPE_ALabV2_8, Mask: 0, Frm: UnrollALabV2_8}, {Type: TYPE_LabV2_16, Mask: 0, Frm: UnrollLabV2_16}, {Type: CHANNELS_SH(3) | BYTES_SH(1), Mask: ANYSPACE, Frm: Unroll3Bytes}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Unroll3BytesSwap}, {Type: CHANNELS_SH(3) | EXTRA_SH(1) | BYTES_SH(1) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Unroll3BytesSkip1Swap}, {Type: CHANNELS_SH(3) | EXTRA_SH(1) | BYTES_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Unroll3BytesSkip1SwapFirst}, {Type: CHANNELS_SH(3) | EXTRA_SH(1) | BYTES_SH(1) | DOSWAP_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Unroll3BytesSkip1SwapSwapFirst}, {Type: CHANNELS_SH(4) | BYTES_SH(1), Mask: ANYSPACE, Frm: Unroll4Bytes}, {Type: CHANNELS_SH(4) | BYTES_SH(1) | FLAVOR_SH(1), Mask: ANYSPACE, Frm: Unroll4BytesReverse}, {Type: CHANNELS_SH(4) | BYTES_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Unroll4BytesSwapFirst}, {Type: CHANNELS_SH(4) | BYTES_SH(1) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Unroll4BytesSwap}, {Type: CHANNELS_SH(4) | BYTES_SH(1) | DOSWAP_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Unroll4BytesSwapSwapFirst}, {Type: BYTES_SH(1) | PLANAR_SH(1), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYPREMUL | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: UnrollPlanarBytes}, {Type: BYTES_SH(1), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYPREMUL | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: UnrollChunkyBytes}, {Type: CHANNELS_SH(1) | BYTES_SH(2), Mask: ANYSPACE, Frm: Unroll1Word}, {Type: CHANNELS_SH(1) | BYTES_SH(2) | FLAVOR_SH(1), Mask: ANYSPACE, Frm: Unroll1WordReversed}, {Type: CHANNELS_SH(1) | BYTES_SH(2) | EXTRA_SH(3), Mask: ANYSPACE, Frm: Unroll1WordSkip3}, {Type: CHANNELS_SH(2) | BYTES_SH(2), Mask: ANYSPACE, Frm: Unroll2Words}, {Type: CHANNELS_SH(3) | BYTES_SH(2), Mask: ANYSPACE, Frm: Unroll3Words}, {Type: CHANNELS_SH(4) | BYTES_SH(2), Mask: ANYSPACE, Frm: Unroll4Words}, {Type: CHANNELS_SH(3) | BYTES_SH(2) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Unroll3WordsSwap}, {Type: CHANNELS_SH(3) | BYTES_SH(2) | EXTRA_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Unroll3WordsSkip1SwapFirst}, {Type: CHANNELS_SH(3) | BYTES_SH(2) | EXTRA_SH(1) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Unroll3WordsSkip1Swap}, {Type: CHANNELS_SH(4) | BYTES_SH(2) | FLAVOR_SH(1), Mask: ANYSPACE, Frm: Unroll4WordsReverse}, {Type: CHANNELS_SH(4) | BYTES_SH(2) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Unroll4WordsSwapFirst}, {Type: CHANNELS_SH(4) | BYTES_SH(2) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Unroll4WordsSwap}, {Type: CHANNELS_SH(4) | BYTES_SH(2) | DOSWAP_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Unroll4WordsSwapSwapFirst}, {Type: BYTES_SH(2) | PLANAR_SH(1), Mask: ANYFLAVOR | ANYSWAP | ANYENDIAN | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: UnrollPlanarWords}, {Type: BYTES_SH(2), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYENDIAN | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: UnrollAnyWords}, {Type: BYTES_SH(2) | PLANAR_SH(1), Mask: ANYFLAVOR | ANYSWAP | ANYENDIAN | ANYEXTRA | ANYCHANNELS | ANYSPACE | PREMUL_SH(1), Frm: UnrollPlanarWordsPremul}, {Type: BYTES_SH(2), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYENDIAN | ANYEXTRA | ANYCHANNELS | ANYSPACE | PREMUL_SH(1), Frm: UnrollAnyWordsPremul}, }
InputFormatters16 is the table of 16-bit input formatters
var InputFormattersFloat = []cmsFormattersFloat{ {Type: TYPE_Lab_DBL, Mask: ANYPLANAR | ANYEXTRA, Frm: UnrollLabDoubleToFloat}, {Type: TYPE_Lab_FLT, Mask: ANYPLANAR | ANYEXTRA, Frm: UnrollLabFloatToFloat}, {Type: TYPE_XYZ_DBL, Mask: ANYPLANAR | ANYEXTRA, Frm: UnrollXYZDoubleToFloat}, {Type: TYPE_XYZ_FLT, Mask: ANYPLANAR | ANYEXTRA, Frm: UnrollXYZFloatToFloat}, { Type: FLOAT_SH(1) | BYTES_SH(4), Mask: ANYPLANAR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYPREMUL | ANYCHANNELS | ANYSPACE, Frm: UnrollFloatsToFloat, }, { Type: FLOAT_SH(1) | BYTES_SH(0), Mask: ANYPLANAR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE | ANYPREMUL, Frm: UnrollDoublesToFloat, }, {Type: TYPE_LabV2_8, Mask: 0, Frm: UnrollLabV2_8ToFloat}, {Type: TYPE_ALabV2_8, Mask: 0, Frm: UnrollALabV2_8ToFloat}, {Type: TYPE_LabV2_16, Mask: 0, Frm: UnrollLabV2_16ToFloat}, { Type: BYTES_SH(1), Mask: ANYPLANAR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: Unroll8ToFloat, }, { Type: BYTES_SH(2), Mask: ANYPLANAR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: Unroll16ToFloat, }, { Type: FLOAT_SH(1) | BYTES_SH(2), Mask: ANYPLANAR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: UnrollHalfToFloat, }, }
Define the `InputFormattersFloat` array.
var Mantissa = []uint32{}/* 2048 elements not displayed */
var NISO = len(isotempdata)
Constants
var Offset = []uint16{
0x0000, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0000, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
0x0400, 0x0400, 0x0400, 0x0400}
var OutputFormatters16 = []cmsFormatters16{ {Type: TYPE_Lab_DBL, Mask: ANYPLANAR | ANYEXTRA, Frm: PackLabDoubleFrom16}, {Type: TYPE_XYZ_DBL, Mask: ANYPLANAR | ANYEXTRA, Frm: PackXYZDoubleFrom16}, {Type: TYPE_Lab_FLT, Mask: ANYPLANAR | ANYEXTRA, Frm: PackLabFloatFrom16}, {Type: TYPE_XYZ_FLT, Mask: ANYPLANAR | ANYEXTRA, Frm: PackXYZFloatFrom16}, {Type: FLOAT_SH(1) | BYTES_SH(0), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYCHANNELS | ANYPLANAR | ANYEXTRA | ANYSPACE, Frm: PackDoubleFrom16}, {Type: FLOAT_SH(1) | BYTES_SH(4), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYCHANNELS | ANYPLANAR | ANYEXTRA | ANYSPACE, Frm: PackFloatFrom16}, {Type: FLOAT_SH(1) | BYTES_SH(2), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYCHANNELS | ANYPLANAR | ANYEXTRA | ANYSPACE, Frm: PackHalfFrom16}, {Type: CHANNELS_SH(1) | BYTES_SH(1), Mask: ANYSPACE, Frm: Pack1Byte}, {Type: CHANNELS_SH(1) | BYTES_SH(1) | EXTRA_SH(1), Mask: ANYSPACE, Frm: Pack1ByteSkip1}, {Type: CHANNELS_SH(1) | BYTES_SH(1) | EXTRA_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Pack1ByteSkip1SwapFirst}, {Type: CHANNELS_SH(1) | BYTES_SH(1) | FLAVOR_SH(1), Mask: ANYSPACE, Frm: Pack1ByteReversed}, {Type: TYPE_LabV2_8, Mask: 0, Frm: PackLabV2_8}, {Type: TYPE_ALabV2_8, Mask: 0, Frm: PackALabV2_8}, {Type: TYPE_LabV2_16, Mask: 0, Frm: PackLabV2_16}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | OPTIMIZED_SH(1), Mask: ANYSPACE, Frm: Pack3BytesOptimized}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1) | OPTIMIZED_SH(1), Mask: ANYSPACE, Frm: Pack3BytesAndSkip1Optimized}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1) | SWAPFIRST_SH(1) | OPTIMIZED_SH(1), Mask: ANYSPACE, Frm: Pack3BytesAndSkip1SwapFirstOptimized}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1) | DOSWAP_SH(1) | SWAPFIRST_SH(1) | OPTIMIZED_SH(1), Mask: ANYSPACE, Frm: Pack3BytesAndSkip1SwapSwapFirstOptimized}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | DOSWAP_SH(1) | EXTRA_SH(1) | OPTIMIZED_SH(1), Mask: ANYSPACE, Frm: Pack3BytesAndSkip1SwapOptimized}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | DOSWAP_SH(1) | OPTIMIZED_SH(1), Mask: ANYSPACE, Frm: Pack3BytesSwapOptimized}, {Type: CHANNELS_SH(3) | BYTES_SH(1), Mask: ANYSPACE, Frm: Pack3Bytes}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1), Mask: ANYSPACE, Frm: Pack3BytesAndSkip1}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Pack3BytesAndSkip1SwapFirst}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1) | DOSWAP_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Pack3BytesAndSkip1SwapSwapFirst}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | DOSWAP_SH(1) | EXTRA_SH(1), Mask: ANYSPACE, Frm: Pack3BytesAndSkip1Swap}, {Type: CHANNELS_SH(3) | BYTES_SH(1) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Pack3BytesSwap}, {Type: CHANNELS_SH(4) | BYTES_SH(1), Mask: ANYSPACE, Frm: Pack4Bytes}, {Type: CHANNELS_SH(4) | BYTES_SH(1) | FLAVOR_SH(1), Mask: ANYSPACE, Frm: Pack4BytesReverse}, {Type: CHANNELS_SH(4) | BYTES_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Pack4BytesSwapFirst}, {Type: CHANNELS_SH(4) | BYTES_SH(1) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Pack4BytesSwap}, {Type: CHANNELS_SH(4) | BYTES_SH(1) | DOSWAP_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Pack4BytesSwapSwapFirst}, {Type: CHANNELS_SH(6) | BYTES_SH(1), Mask: ANYSPACE, Frm: Pack6Bytes}, {Type: CHANNELS_SH(6) | BYTES_SH(1) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Pack6BytesSwap}, {Type: BYTES_SH(1), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE | ANYPREMUL, Frm: PackChunkyBytes}, {Type: BYTES_SH(1) | PLANAR_SH(1), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE | ANYPREMUL, Frm: PackPlanarBytes}, {Type: CHANNELS_SH(1) | BYTES_SH(2), Mask: ANYSPACE, Frm: Pack1Word}, {Type: CHANNELS_SH(1) | BYTES_SH(2) | EXTRA_SH(1), Mask: ANYSPACE, Frm: Pack1WordSkip1}, {Type: CHANNELS_SH(1) | BYTES_SH(2) | EXTRA_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Pack1WordSkip1SwapFirst}, {Type: CHANNELS_SH(1) | BYTES_SH(2) | FLAVOR_SH(1), Mask: ANYSPACE, Frm: Pack1WordReversed}, {Type: CHANNELS_SH(1) | BYTES_SH(2) | ENDIAN16_SH(1), Mask: ANYSPACE, Frm: Pack1WordBigEndian}, {Type: CHANNELS_SH(3) | BYTES_SH(2), Mask: ANYSPACE, Frm: Pack3Words}, {Type: CHANNELS_SH(3) | BYTES_SH(2) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Pack3WordsSwap}, {Type: CHANNELS_SH(3) | BYTES_SH(2) | ENDIAN16_SH(1), Mask: ANYSPACE, Frm: Pack3WordsBigEndian}, {Type: CHANNELS_SH(3) | BYTES_SH(2) | EXTRA_SH(1), Mask: ANYSPACE, Frm: Pack3WordsAndSkip1}, {Type: CHANNELS_SH(3) | BYTES_SH(2) | EXTRA_SH(1) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Pack3WordsAndSkip1Swap}, {Type: CHANNELS_SH(3) | BYTES_SH(2) | EXTRA_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Pack3WordsAndSkip1SwapFirst}, {Type: CHANNELS_SH(3) | BYTES_SH(2) | EXTRA_SH(1) | DOSWAP_SH(1) | SWAPFIRST_SH(1), Mask: ANYSPACE, Frm: Pack3WordsAndSkip1SwapSwapFirst}, {Type: CHANNELS_SH(4) | BYTES_SH(2), Mask: ANYSPACE, Frm: Pack4Words}, {Type: CHANNELS_SH(4) | BYTES_SH(2) | FLAVOR_SH(1), Mask: ANYSPACE, Frm: Pack4WordsReverse}, {Type: CHANNELS_SH(4) | BYTES_SH(2) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Pack4WordsSwap}, {Type: CHANNELS_SH(4) | BYTES_SH(2) | ENDIAN16_SH(1), Mask: ANYSPACE, Frm: Pack4WordsBigEndian}, {Type: CHANNELS_SH(6) | BYTES_SH(2), Mask: ANYSPACE, Frm: Pack6Words}, {Type: CHANNELS_SH(6) | BYTES_SH(2) | DOSWAP_SH(1), Mask: ANYSPACE, Frm: Pack6WordsSwap}, {Type: BYTES_SH(2), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYENDIAN | ANYEXTRA | ANYCHANNELS | ANYSPACE | ANYPREMUL, Frm: PackChunkyWords}, {Type: BYTES_SH(2) | PLANAR_SH(1), Mask: ANYFLAVOR | ANYENDIAN | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE | ANYPREMUL, Frm: PackPlanarWords}, }
OutputFormatters16 is the Go equivalent of the C++ array.
var OutputFormattersFloat = []cmsFormattersFloat{ {Type: TYPE_Lab_FLT, Mask: ANYPLANAR | ANYEXTRA, Frm: PackLabFloatFromFloat}, {Type: TYPE_XYZ_FLT, Mask: ANYPLANAR | ANYEXTRA, Frm: PackXYZFloatFromFloat}, {Type: TYPE_Lab_DBL, Mask: ANYPLANAR | ANYEXTRA, Frm: PackLabDoubleFromFloat}, {Type: TYPE_XYZ_DBL, Mask: ANYPLANAR | ANYEXTRA, Frm: PackXYZDoubleFromFloat}, {Type: FLOAT_SH(1) | BYTES_SH(4), Mask: ANYPLANAR | ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: PackFloatsFromFloat}, {Type: FLOAT_SH(1) | BYTES_SH(0), Mask: ANYPLANAR | ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: PackDoublesFromFloat}, {Type: FLOAT_SH(1) | BYTES_SH(2), Mask: ANYFLAVOR | ANYSWAPFIRST | ANYSWAP | ANYEXTRA | ANYCHANNELS | ANYSPACE, Frm: PackHalfFromFloat}, }
OutputFormattersFloat is the Go equivalent of the C++ array.
var Shift = []uint8{}/* 512 elements not displayed */
var SupportedMPEtypes []cmsTagTypeLinkedList
var SupportedTagTypes []cmsTagTypeLinkedList
var SupportedTags []cmsTagLinkedList
Functions ¶
func AddConversion ¶
func AddMLUBlock ¶
AddMLUBlock adds a block of characters to the MLU for a specific language and country.
func AllCurvesAreLinear ¶
func AllCurvesAreLinear(mpe *cmsStage) bool
func AllocArray ¶
func AllocArray(mm mem.Manager, contextID CmsContext, a *cmsDICarray, count uint32, length uint32) bool
Allocate the entire array
func AllocElem ¶
func AllocElem(mm mem.Manager, contextID CmsContext, e *cmsDICelem, count uint32) bool
Allocate an empty array element
func AllocEmptyTransform ¶
func AllocEmptyTransform(mm mem.Manager, ContextID CmsContext, lut *cmsPipeline, Intent uint32, InputFormat, OutputFormat, dwFlags *uint32, ) *cmsTRANSFORM
func BaseToBase ¶
BaseToBase converts a number from one base to another.
func BilinearInterp16 ¶
BilinearInterp16 performs bilinear interpolation for 16-bit values.
func BilinearInterpFloat ¶
BilinearInterpFloat performs bilinear interpolation for floating-point values.
func BlackPointAsDarkerColorant ¶
func BlackPointAsDarkerColorant(mm mem.Manager, hInput CmsHPROFILE, Intent uint32, BlackPoint *cmsCIEXYZ, dwFlags uint32) bool
BlackPointAsDarkerColorant uses darker colorants to obtain the black point. This works in the relative colorimetric intent and assumes more ink results in darker colors. No ink limit is assumed.
func BlackPointUsingPerceptualBlack ¶
func BlackPointUsingPerceptualBlack(mm mem.Manager, BlackPoint *cmsCIEXYZ, hProfile CmsHPROFILE) bool
BlackPointUsingPerceptualBlack calculates the black point of an output CMYK profile, discounting any ink-limiting embedded in the profile. The process involves a roundtrip transformation using perceptual intent: Lab (0, 0, 0) -> [Perceptual] Profile -> CMYK -> [Rel. Colorimetric] Profile -> Lab.
func BlackPreservingGrayOnlySampler ¶
BlackPreservingGrayOnlySampler preserves black-only CMYK transformations.
func BlackPreservingKOnlyIntents ¶
func BlackPreservingKOnlyIntents(mm mem.Manager, ContextID CmsContext, nProfiles uint32, TheIntents []uint32, hProfiles []CmsHPROFILE, BPC []bool, AdaptationStates []float64, dwFlags uint32, ) *cmsPipeline
BlackPreservingKOnlyIntents handles black-preserving K-only intents.
func BlackPreservingKPlaneIntents ¶
func BlackPreservingKPlaneIntents(mm mem.Manager, ContextID CmsContext, nProfiles uint32, TheIntents []uint32, hProfiles []CmsHPROFILE, BPC []bool, AdaptationStates []float64, dwFlags uint32, ) *cmsPipeline
BlackPreservingKPlaneIntents handles black-plane preserving intents.
func BlackPreservingSampler ¶
BlackPreservingSampler performs sampling for K-plane preservation.
func BlessLUT ¶
func BlessLUT(lut *cmsPipeline) bool
BlessLUT sets up the channel count and ensures consistency across stages.
func BuildGrayInputMatrixPipeline ¶
func BuildGrayInputMatrixPipeline(mm mem.Manager, hProfile CmsHPROFILE) *cmsPipeline
BuildGrayInputMatrixPipeline translates the first function
func BuildGrayOutputPipeline ¶
func BuildGrayOutputPipeline(mm mem.Manager, hProfile CmsHPROFILE) *cmsPipeline
func BuildRGBInputMatrixShaper ¶
func BuildRGBInputMatrixShaper(mm mem.Manager, hProfile CmsHPROFILE) *cmsPipeline
func BuildRGBOutputMatrixShaper ¶
func BuildRGBOutputMatrixShaper(mm mem.Manager, hProfile CmsHPROFILE) *cmsPipeline
BuildRGBOutputMatrixShaper translates the given function
func BytesPerPixel ¶
BytesPerPixel returns how many bytes a single *pixel* occupies in memory for a given LCMS packed format. This is different from PixelSize, which is bytes per *sample* (channel).
func BytesToFloat32sLE ¶
func BytesToFloat64sLE ¶
func BytesToUint16sLE ¶
func CHAD2Temp ¶
func CHAD2Temp(Chad *cmsMAT3) float64
Approximate a blackbody illuminant based on CHAD information Approximate a blackbody illuminant based on CHAD information
func CHANNELS_SH ¶
func CIE2000DeltaE ¶
CIE2000 Delta-E
func CLUTElemDup ¶
CLUTElemDup duplicates a CLUT element.
func CLutElemTypeFree ¶
CLutElemTypeFree frees the resources of a CLUT element.
func COLORSPACE_SH ¶
func CachedXFORM ¶
func CachedXFORMBytes ¶ added in v0.0.3
func CachedXFORMGamutCheck ¶
func CachedXFORMGamutCheckBytes ¶ added in v0.0.3
func ChangeInterpolationToTrilinear ¶
func ChangeInterpolationToTrilinear(Lut *cmsPipeline)
func Clamp_L_doubleV2 ¶
Clamp function for Lab L values (Version 2)
func Clamp_ab_doubleV2 ¶
Clamp function for Lab a/b values (Version 2)
func Clamp_ab_doubleV4 ¶
func CloseEnough ¶
func CloseEnoughFloat ¶
CloseEnoughFloat checks if two floating-point numbers are close enough.
func CmsCloseProfile ¶
func CmsCloseProfile(mm mem.Manager, hProfile CmsHPROFILE) bool
func CmsContextGetClientChunk ¶
func CmsContextGetClientChunk(ContextID CmsContext, mc cmsMemoryClient) any
CmsContextGetClientChunk retrieves the memory area associated with each context client Internal: get the memory area associanted with each context client Returns the block assigned to the specific zone. Never return nil.
func CmsDeleteTransform ¶
func CmsDeleteTransform(hTransform CmsHTRANSFORM)
cmsDeleteTransform releases the resources associated with a transform.
func CmsDoTransform ¶
func CmsDoTransform(mm mem.Manager, Transform CmsHTRANSFORM, InputBuffer, OutputBuffer any, Size uint32)
cmsDoTransform applies a transformation to the input buffer and writes the result to the output buffer.
func CmsDoTransformBytes ¶ added in v0.0.3
func CmsDoTransformBytes(mm mem.Manager, Transform CmsHTRANSFORM, InputBuffer, OutputBuffer []byte, Size uint32)
cmsDoTransform applies a transformation to the input buffer and writes the result to the output buffer.
func CmsDoTransformParallel ¶
func CmsDoTransformParallelBytes ¶ added in v0.0.3
func CmsDoTransformStride ¶
func CmsFreeToneCurve ¶
func CmsFreeToneCurve(Curve *CmsToneCurve)
Free all memory taken by the gamma curve
func CmsGetColorSpace ¶
func CmsGetColorSpace(hProfile CmsHPROFILE) cmsColorSpaceSignature
cmsGetColorSpace retrieves the color space from the profile
func CmsGetProfileInfoASCII ¶
func CmsGetProfileInfoASCII(mm mem.Manager, hProfile CmsHPROFILE, Info CmsInfoType, LanguageCode string, CountryCode string, Buffer []byte, BufferSize uint32) uint32
func ColorSpaceIsCompatible ¶
func ColorSpaceIsCompatible(a, b cmsColorSpaceSignature) bool
ColorSpaceIsCompatible checks if two color spaces are compatible.
func CompatibleTypes ¶
func CompatibleTypes(desc1 *cmsTagDescriptor, desc2 *cmsTagDescriptor) bool
Checks for link compatibility
func ComputeAbsoluteIntent ¶
func ComputeAbsoluteIntent( AdaptationState float64, WhitePointIn *cmsCIEXYZ, ChromaticAdaptationMatrixIn *cmsMAT3, WhitePointOut *cmsCIEXYZ, ChromaticAdaptationMatrixOut *cmsMAT3, m *cmsMAT3, ) bool
Join scalings to obtain relative input to absolute and then to relative output. Result is stored in a 3x3 matrix
func ComputeBlackPointCompensation ¶
func ComputeBlackPointCompensation(BlackPointIn *cmsCIEXYZ, BlackPointOut *cmsCIEXYZ, m *cmsMAT3, off *cmsVEC3)
ComputeBlackPointCompensation calculates the black point compensation matrix and offset. Black points should come relative to the white point. Fills a matrix `m` and an offset `off`, organized as a 4x4 matrix.
Implementation details: The function computes a linear scaling in XYZ such that: - [m]*bpin + off = bpout - [m]*D50 + off = D50
This linear scaling takes the form: ax+b, where: - a = (bpout - D50) / (bpin - D50) - b = -D50 * (bpout - bpin) / (bpin - D50)
func ComputeChromaticAdaptation ¶
func ComputeChromaticAdaptation(Conversion *cmsMAT3, SourceWhitePoint, DestWhitePoint *cmsCIEXYZ, Chad *cmsMAT3) bool
Compute chromatic adaptation matrix using Chad as cone matrix
func ComputeComponentIncrements ¶
func ComputeComponentIncrements(format, bytesPerPlane uint32, componentStartingOrder, componentPointerIncrements []uint32)
Dispatcher for chunky and planar formats
func ComputeConversion ¶
func ComputeIncrementsForChunky ¶
func ComputeIncrementsForChunky(format uint32, componentStartingOrder, componentPointerIncrements []uint32)
Compute increments for chunky formats
func ComputeIncrementsForPlanar ¶
func ComputeIncrementsForPlanar(format uint32, bytesPerPlane uint32, componentStartingOrder, componentPointerIncrements []uint32)
Compute increments for planar formats
func CurveSetDup ¶
func CurveSetElemTypeFree ¶
func CurvesDup ¶
func CurvesDup(ContextID CmsContext, ptr any) any
CurvesDup duplicates a Curves16Data structure
func CurvesFree ¶
func CurvesFree(ContextID CmsContext, ptr any)
func DecideCurveType ¶
DecideCurveType decides which curve type to use when writing.
func DecideLUTtypeA2B ¶
DecideLUTtypeA2B decides which LUT type to use when writing A2B LUTs.
func DecideLUTtypeB2A ¶
DecideLUTtypeB2A decides which LUT type to use when writing B2A LUTs.
func DecideTextDescType ¶
DecideTextDescType determines the type of text description
func DecideTextType ¶
DecideTextType determines the text type signature based on ICC version.
func DecideXYZtype ¶
DecideXYZtype decides the type of XYZ tag.
func DefaultEvalParametricFn ¶
DefaultEvalParametricFn evaluates a parametric curve using floating point. The behavior depends on the curve type and associated parameters.
func DefaultICCintents ¶
func DefaultICCintents(mm mem.Manager, ContextID CmsContext, nProfiles uint32, TheIntents []uint32, hProfiles []CmsHPROFILE, BPC []bool, AdaptationStates []float64, dwFlags uint32, ) *cmsPipeline
func DefaultInterpolatorsFactory ¶
func DefaultInterpolatorsFactory(nInputChannels, nOutputChannels, dwFlags uint32) cmsInterpFunction
The default factory DefaultInterpolatorsFactory defines the default interpolation routine.
func DefaultLogErrorHandlerFunction ¶
func DefaultLogErrorHandlerFunction(ContextID CmsContext, ErrorCode uint32, text string)
The default error logger does nothing.
func DupFormatterFactoryList ¶
func DupFormatterFactoryList(mm mem.Manager, ctx CmsContext, src CmsContext)
Duplicate the zone of memory used by the plugin in the new context
func DupMatShaper ¶
func DupMatShaper(ContextID CmsContext, Data any) any
func DupNamedColorList ¶
DupNamedColorList duplicates the named color list.
func DupPluginOptimizationList ¶
func DupPluginOptimizationList(mm mem.Manager, ctx CmsContext, src CmsContext)
DupPluginOptimizationList duplicates the optimization list for a new context.
func DupPluginTransformList ¶
func DupPluginTransformList(mm mem.Manager, ctx CmsContext, src CmsContext)
DupPluginTransformList duplicates the transform plugin list for a new context.
func DupWcs ¶
func DupWcs(contextID CmsContext, ptr []uint16) []uint16
Duplicate a wide character string
func ENDIAN16_SH ¶
func EntriesByGamma ¶
EntriesByGamma calculates the number of entries by gamma.
func EstimateTAC ¶
EstimateTAC is the callback function to calculate maximum TAC.
func EuclideanDistance ¶
Euclidean distance between two vectors of n elements each one
func Eval1Input ¶
Eval1Input performs 1D interpolation for a single input.
func Eval1InputFloat ¶
Eval1InputFloat evaluates a gray LUT having only one input channel (float version).
func Eval4Inputs ¶
Eval4Inputs — optimized, WASM-safe, no unsafe pointers. Key changes explained after the code.
func Eval4InputsFloat ¶
Eval4InputsFloat performs tetrahedral interpolation with 4 input channels for floating-point values. Eval4InputsFloat — tetrahedral interp with 4 inputs (float32), K split + 3D tetra. WASM-safe, no unsafe. Mirrors the structure you now use in Eval4Inputs (U16).
func Eval5Inputs ¶
Eval5Inputs evaluates a 5-input LUT.
func Eval5InputsFloat ¶
Eval5InputsFloat evaluates a 5-input LUT using floating-point interpolation.
func Eval6Inputs ¶
Eval6Inputs evaluates a 6-input LUT with `[]uint16` table.
func Eval6InputsFloat ¶
Eval6InputsFloat evaluates a 6-input LUT with `[]float32` table.
func Eval7Inputs ¶
Eval7Inputs evaluates a 7-input LUT with `[]uint16` table.
func Eval7InputsFloat ¶
Eval7InputsFloat evaluates a 7-input LUT with `[]float32` table.
func Eval8Inputs ¶
Eval8Inputs evaluates an 8-input LUT with `[]uint16` table.
func Eval8InputsFloat ¶
Eval8InputsFloat evaluates an 8-input LUT with `[]float32` table.
func Eval9Inputs ¶
Eval9Inputs evaluates a 9-input LUT with `[]uint16` table.
func Eval9InputsFloat ¶
Eval9InputsFloat evaluates a 9-input LUT with `[]float32` table.
func Eval10Inputs ¶
Eval10Inputs evaluates a 10-input LUT with `[]uint16` table.
func Eval10InputsFloat ¶
Eval10InputsFloat evaluates a 10-input LUT with `[]float32` table.
func Eval11Inputs ¶
Eval11Inputs evaluates an 11-input LUT with `[]uint16` table.
func Eval11InputsFloat ¶
Eval11InputsFloat evaluates an 11-input LUT with `[]float32` table.
func Eval12Inputs ¶
Eval12Inputs evaluates a 12-input LUT with `[]uint16` table.
func Eval12InputsFloat ¶
Eval12InputsFloat evaluates a 12-input LUT with `[]float32` table.
func Eval13Inputs ¶
Eval13Inputs evaluates a 13-input LUT with `[]uint16` table.
func Eval13InputsFloat ¶
Eval13InputsFloat evaluates a 13-input LUT with `[]float32` table.
func Eval14Inputs ¶
Eval14Inputs evaluates a 14-input LUT with `[]uint16` table.
func Eval14InputsFloat ¶
Eval14InputsFloat evaluates a 14-input LUT with `[]float32` table.
func Eval15Inputs ¶
Eval15Inputs evaluates a 15-input LUT with `[]uint16` table.
func Eval15InputsFloat ¶
Eval15InputsFloat evaluates a 15-input LUT with `[]float32` table.
func Eval16nop1D ¶
func EvalNamedColor ¶
EvalNamedColor evaluates named color in device colorant space.
func EvalNamedColorPCS ¶
EvalNamedColorPCS evaluates named color in PCS (Lab) space.
func EvalSegmentedFn ¶
func EvalSegmentedFn(mm mem.Manager, g *CmsToneCurve, R float64) float64
func EvaluateCLUTfloat ¶
EvaluateCLUTfloat evaluates a CLUT in true floating point.
func EvaluateCLUTfloatIn16 ¶
func EvaluateCurves ¶
func EvaluateIdentity ¶
func EvaluateLab2XYZ ¶
func EvaluateMatrix ¶
func EvaluateXYZ2Lab ¶
func FIXED_REST_TO_INT ¶
func FIXED_REST_TO_INT(x cmsS15Fixed16Number) uint16
func FIXED_TO_INT ¶
func FIXED_TO_INT(x cmsS15Fixed16Number) int32
Fixed point macros translated to Go functions
func FROM_8_TO_16 ¶
FROM_8_TO_16 converts an 8-bit value to a 16-bit value
func FROM_16_TO_8 ¶
FROM_16_TO_8 converts a 16-bit value to an 8-bit value
func FastEvaluateCurves8 ¶
func FastEvaluateCurves16 ¶
func FileClose ¶
func FileClose(iohandler *cms_io_handler) bool
FileClose closes the file stream. Returns true on success, false otherwise.
func FileRead ¶
FileRead reads count elements of size bytes each from the file stream. Returns the number of elements read.
func FileSeek ¶
FileSeek repositions the file pointer within the file. Returns true on success, false otherwise.
func FileTell ¶
func FileTell(iohandler *cms_io_handler) uint32
FileTell returns the current position of the file pointer within the file. Returns 0 on error, which is also a valid position.
func FillFirstShaper ¶
func FillFirstShaper(mm mem.Manager, Table []cmsS1Fixed14Number, Curve *CmsToneCurve)
func FillSecondShaper ¶
func FillSecondShaper(mm mem.Manager, Table []uint16, Curve *CmsToneCurve, Is8BitsOutput bool)
func FixWhiteMisalignment ¶
func Float32sToBytesLE ¶
func Float64sToBytesLE ¶
func FloatXFORM ¶
func FloatXFORMBytes ¶ added in v0.0.3
func FormatterPos ¶
Returns the position (x or y) of the formatter in the table of functions
func FreeMatShaper ¶
func FreeMatShaper(ContextID CmsContext, Data any)
func FreeNamedColorList ¶
FreeNamedColorList releases the resources for the named color list.
func From16ToFloat ¶
From16ToFloat converts n uint16 values in In to float32 in Out, in [0, 1].
func FromFloatTo16 ¶
FromFloatTo16 converts a slice of float32 values to a slice of uint16 values FromFloatTo16 converts a slice of float32 values to a slice of uint16 values using unsafe pointer arithmetic.
func GamutSampler ¶
GamutSampler computes gamut boundaries by comparing original values with a transform going back and forth. Values above ERR_THRESHOLD are considered out of gamut.
func GenericMPEDup ¶
func GenericMPEFree ¶
func GetHandler ¶
func GetHandler( sig cmsTagTypeSignature, PluginLinkedList *cmsTagTypeLinkedList, DefaultLinkedList *cmsTagTypeLinkedList, ) *cmsTagTypeHandler
Return handler for a given type or NULL if not found. Shared between normal types and MPE. It first tries the additons made by plug-ins and then the built-in defaults. GetHandler returns the handler for a given type signature. It first tries the additions made by plug-ins and then the built-in defaults.
func GetInfo ¶
func GetInfo(mm mem.Manager, hProfile CmsHPROFILE, Info CmsInfoType) *cmsMLU
func GetInterval ¶
func GetMLUFromProfile ¶
func GetMLUFromProfile(mm mem.Manager, h CmsHPROFILE, sig cmsTagSignature) *cmsMLU
GetMLUFromProfile reads and duplicates an MLU tag from the profile if found.
func GetParametricCurveByType ¶
func GetParametricCurveByType(ContextID CmsContext, Type int, index *int) *cmsParametricCurvesCollection
Parametric curves
Parameters goes as: Curve, a, b, c, d, e, f Type is the ICC type +1 if type is negative, then the curve is analytically inverted GetParametricCurveByType searches for the collection that contains a specific type of parametric curve.
func GetTransformFlags ¶
func GetTransformFlags(cmmCargo *cmsTRANSFORM) uint32
GetTransformFlags retrieves the original flags.
func GetTransformFormatters16 ¶
func GetTransformFormatters16(cmmCargo *cmsTRANSFORM) (fromInput, toOutput cmsFormatter16)
GetTransformFormatters16 retrieves the current 16-bit formatters.
func GetTransformFormattersFloat ¶
func GetTransformFormattersFloat(cmmCargo *cmsTRANSFORM) (fromInputFloat, toOutputFloat cmsFormatterFloat)
GetTransformFormattersFloat retrieves the current float formatters.
func GetTransformMaxWorkers ¶
func GetTransformMaxWorkers(cmmCargo *cmsTRANSFORM) int32
GetTransformMaxWorkers retrieves the maximum number of workers or -1 for auto.
func GetTransformUserData ¶
func GetTransformUserData(cmmCargo *cmsTRANSFORM) any
GetTransformUserData retrieves the user-defined data.
func GetTransformWorker ¶
func GetTransformWorker(cmmCargo *cmsTRANSFORM) cmsTransform2Fn
GetTransformWorker retrieves the worker callback for parallelization plugins.
func GetTransformWorkerFlags ¶
func GetTransformWorkerFlags(cmmCargo *cmsTRANSFORM) uint32
GetTransformWorkerFlags retrieves the worker flags.
func GetXFormColorSpaces ¶
func GetXFormColorSpaces( nProfiles uint32, hProfiles []CmsHPROFILE, Input, Output *cmsColorSpaceSignature, ) bool
func GrowMLUpool ¶
func GrowMLUpool(mlu *cmsMLU) bool
GrowMLUpool grows the memory pool for an MLU. Pool size is doubled on each call.
func GrowMLUtable ¶
func GrowMLUtable(mlu *cmsMLU) bool
GrowMLUtable grows the entry table for an MLU. Table size is doubled on each call.
func GrowNamedColorList ¶
GrowNamedColorList grows the list to accommodate at least NumElements. GrowNamedColorList expands the capacity of the named color list dynamically.
func IdentitySampler ¶
func InkLimitingSampler ¶
InkLimitingSampler translates the given function
func IsDegenerated ¶
func IsDegenerated(g *CmsToneCurve) bool
func IsEmptyLayer ¶
func IsEmptyLayer(m *cmsMAT3, off *cmsVEC3) bool
IsEmptyLayer checks if the given matrix `m` and offset `off` represent an empty layer. Returns true if the layer is effectively empty, false otherwise.
An empty layer is defined as: - Both `m` and `off` are NULL (allowed as an empty layer). - `m` is NULL but `off` is not (this indicates an internal error). - `m` is the identity matrix and `off` is a zero vector.
Tolerance for differences is set to 0.002.
func IsInkSpace ¶
func IsProperColorSpace ¶
func IsTypeSupported ¶
func IsTypeSupported(TagDescriptor *cmsTagDescriptor, Type cmsTagTypeSignature) bool
Returns TRUE if a given tag is supported by a plug-in
func LabToSlice ¶
func LabToSlice(lab cmsCIELab) []float64
func LinLerp1DScalar16 ¶
Scalar, fixed-point path (uint16 -> uint16)
func LinLerp1Dfloat ¶
LinLerp1Dfloat performs 1D linear interpolation on floating-point values.
func LinearInterp ¶
LinearInterp performs inline fixed-point interpolation.
func MatToSlice ¶
func MatToSlice(mat cmsMAT3) []float64
func MatrixElemDup ¶
MatrixElemDup duplicates the matrix stage data.
func MatrixElemTypeFree ¶
MatrixElemTypeFree frees the matrix stage data.
func MemcpySlice ¶
func MemmoveSlice ¶
func MemoryClose ¶
func MemoryClose(iohandler *cms_io_handler) bool
MemoryClose closes the memory-based stream and frees resources if necessary.
func MemoryRead ¶
func MemoryRead(iohandler *cms_io_handler, buffer []byte, size, count uint32) uint32 {
func MemorySeek ¶
MemorySeek sets the current position in the memory block.
func MemoryTell ¶
func MemoryTell(iohandler *cms_io_handler) uint32
MemoryTell returns the current position in the memory block.
func MemoryWrite ¶
MemoryWrite writes data to the memory block and updates the used space.
func MemsetSlice ¶
func NULLClose ¶
func NULLClose(iohandler *cms_io_handler) bool
NULLClose closes the null IOHandler and releases associated memory.
func NULLTell ¶
func NULLTell(iohandler *cms_io_handler) uint32
NULLTell retrieves the current pointer position in the null IOHandler.
func NULLWrite ¶
NULLWrite simulates writing to a null IOHandler. func NULLWrite(iohandler *cms_io_handler, size uint32, ptr []byte) bool {
func NewCmsMutex ¶
func NewCmsMutex() *cmsMutex
func NormalizeXYZ ¶
func NormalizeXYZ(Dest *cmsCIEXYZ)
func NullFloatXFORM ¶
func NullFloatXFORMBytes ¶ added in v0.0.3
func NullXFORMBytes ¶ added in v0.0.3
func OPTIMIZED_SH ¶
func OptimizeByJoiningCurves ¶
func OptimizeByJoiningCurves(mm mem.Manager, Lut **cmsPipeline, Intent uint32, InputFormat *uint32, OutputFormat *uint32, dwFlags *uint32, ) bool
cmsOPToptimizeFn defines the function type for optimizations.
func OptimizeByResampling ¶
func OptimizeMatrixShaper ¶
func Pack1ByteReversed ¶
func Pack1ByteSkip1 ¶
func Pack1ByteSkip1SwapFirst ¶
func Pack1WordBigEndian ¶
func Pack1WordReversed ¶
func Pack1WordSkip1 ¶
func Pack1WordSkip1SwapFirst ¶
func Pack3Bytes ¶
func Pack3BytesAndSkip1 ¶
func Pack3BytesAndSkip1Swap ¶
func Pack3BytesOptimized ¶
func Pack3BytesSwap ¶
func Pack3BytesSwapOptimized ¶
func Pack3Words ¶
func Pack3WordsAndSkip1 ¶
func Pack3WordsAndSkip1Swap ¶
func Pack3WordsBigEndian ¶
func Pack3WordsSwap ¶
func Pack4Bytes ¶
func Pack4BytesReverse ¶
func Pack4BytesSwap ¶
func Pack4BytesSwapFirst ¶
func Pack4BytesSwapSwapFirst ¶
func Pack4Words ¶
func Pack4WordsBigEndian ¶
func Pack4WordsReverse ¶
func Pack4WordsSwap ¶
func Pack6Bytes ¶
func Pack6BytesSwap ¶
func Pack6Words ¶
func Pack6WordsSwap ¶
func PackALabV2_8 ¶
func PackChunkyBytes ¶
func PackChunkyWords ¶
func PackDoubleFrom16 ¶
func PackDoublesFromFloat ¶
func PackFloatFrom16 ¶
func PackFloatsFromFloat ¶
func PackHalfFrom16 ¶
func PackHalfFromFloat ¶
func PackLabDoubleFrom16 ¶
func PackLabDoubleFromFloat ¶
func PackLabFloatFrom16 ¶
func PackLabFloatFromFloat ¶
func PackLabV2_8 ¶
func PackLabV2_16 ¶
func PackNothing ¶
func PackPlanarBytes ¶
func PackPlanarWords ¶
func PackXYZDoubleFrom16 ¶
func PackXYZDoubleFromFloat ¶
func PackXYZFloatFrom16 ¶
func PackXYZFloatFromFloat ¶
func ParallelizeIfSuitable ¶
func ParallelizeIfSuitable(p *cmsTRANSFORM)
func PixelSize ¶
PixelSize calculates the size of a pixel in bytes based on its format. If the format specifies double-precision, it returns the size of a double (float64 in Go).
func PreOptimize ¶
PreOptimize performs various optimization steps on a pipeline.
func PrecalculatedXFORM ¶
func PrecalculatedXFORMBytes ¶ added in v0.0.3
func PrecalculatedXFORMGamutCheckBytes ¶ added in v0.0.3
func Prelin8dup ¶
func Prelin8dup(ContextID CmsContext, ptr any) any
func Prelin8free ¶
func Prelin8free(ContextID CmsContext, ptr any)
func Prelin16dup ¶
func Prelin16dup(_ CmsContext, ptr any) any
func PrelinEval16 ¶
PrelinEval16 implements the optimized interpolation for 16-bit input
func PrelinOpt16free ¶
func PrelinOpt16free(ContextID CmsContext, ptr any)
PrelinOpt16free frees memory associated with Prelin16Data
func REVERSE_FLAVOR_16 ¶
Reverse the flavor for 16-bit values
func ROUND_FIXED_TO_INT ¶
func ROUND_FIXED_TO_INT(x cmsS15Fixed16Number) int32
func Read8bitTables ¶
func Read8bitTables(mm mem.Manager, ContextID CmsContext, io *cmsIOHANDLER, lut *cmsPipeline, nChannels uint32) bool
func Read16bitTables ¶
func Read16bitTables(mm mem.Manager, ContextID CmsContext, io *cmsIOHANDLER, lut *cmsPipeline, nChannels, nEntries uint32) bool
******************************************************************************** Type CmsSigLut16Type ********************************************************************************
func ReadCountAndString ¶
func ReadEmbeddedText ¶
func ReadEmbeddedText(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, mlu **cmsMLU, sizeOfTag uint32) bool
This type is an array of structures, each of which contains information from the header fields and tags from the original profiles which were combined to create the final profile. The order of the structures is the order in which the profiles were combined and includes a structure for the final profile. This provides a description of the profile sequence from source to destination, typically used with the DeviceLink profile.
func ReadICCMatrixRGB2XYZ ¶
func ReadICCMatrixRGB2XYZ(mm mem.Manager, r *cmsMAT3, hProfile CmsHPROFILE) bool
ReadICCMatrixRGB2XYZ translates the given function
func ReadMPECurve ¶
func ReadMPECurve(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, n, sizeOfTag uint32) bool
ReadMPECurve reads a single curve for MPE
func ReadMPEElem ¶
func ReadMPEElem(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, n, sizeOfTag uint32) bool
ReadMPEElem reads a single multi-processing element (MPE).
func ReadMatrix ¶
func ReadOffsetArray ¶
func ReadOffsetArray(io *cmsIOHANDLER, a *cmsDICarray, count uint32, length uint32, baseOffset uint32, signedSizeOfTagPtr *int32) bool
Read offset array
func ReadOneElem ¶
Read a single element
func ReadOneMLUC ¶
func ReadOneMLUC(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, e *cmsDICelem, i uint32, mlu **cmsMLU) bool
Read an MLUC element
func ReadOneWChar ¶
func ReadPositionTable ¶
func ReadSeqID ¶
func ReadSeqID(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, n, sizeOfTag uint32) bool
******************************************************************************** Type CmsSigProfileSequenceIdType ********************************************************************************
In certain workflows using ICC Device Link Profiles, it is necessary to identify the original profiles that were combined to create the Device Link Profile. This type is an array of structures, each of which contains information for identification of a profile used in a sequence
func ReadSetOfCurves ¶
func ReadStruct ¶
func RegisterTypesPlugin ¶
func RegisterTypesPlugin(mm mem.Manager, id CmsContext, Data PluginIntrfc, pos cmsMemoryClient) bool
Register a new type handler. This routine is shared between normal types and MPE.
func RemoveElement ¶
_RemoveElement removes an element from the linked chain.
func ReverseFloat ¶
func RootOfLeastSquaresFitQuadraticCurve ¶
RootOfLeastSquaresFitQuadraticCurve calculates the root of a least squares fit quadratic curve to data. Reference: http://www.personal.psu.edu/jhm/f90/lectures/lsq2.html
func SWAPFIRST_SH ¶
func SaveDescription ¶
func SaveOneChromaticity ¶
SaveOneChromaticity writes a single chromaticity point.
func SaveTags ¶
SaveTags dumps tag contents. If the profile is being modified, untouched tags are copied from FileOrig.
func SearchIntent ¶
func SearchIntent(ContextID CmsContext, Intent uint32) *cmsIntentsList
SearchIntent translates the given function
func SearchMLUEntry ¶
SearchMLUEntry searches for a specific entry in the MLU based on language and country codes.
func SearchOneTag ¶
func SearchOneTag(Profile *cmsICCPROFILE, sig cmsTagSignature) int
Search for a specific tag in the tag dictionary
func SetLinks ¶
func SetLinks(Icc *cmsICCPROFILE) bool
SetLinks fills the offset and size fields for all linked tags.
func SetMatShaper ¶
func SetMatShaper(mm mem.Manager, Dest *cmsPipeline, Curve1 [3]*CmsToneCurve, Mat *cmsMAT3, Off *cmsVEC3, Curve2 [3]*CmsToneCurve, OutputFormat *uint32) bool
func SetSeqDescTag ¶
func SetSeqDescTag(mm mem.Manager, hProfile CmsHPROFILE, Model []byte) bool
func SetTextTags ¶
func SetTextTags(mm mem.Manager, hProfile CmsHPROFILE, Description []uint16) bool
func SetTransformUserData ¶
func SetTransformUserData(cmmCargo *cmsTRANSFORM, ptr unsafe.Pointer, freePrivateDataFn cmsFreeUserDataFn)
SetTransformUserData sets the user-defined data and its cleanup function.
func SetWhitePoint ¶
func SetWhitePoint(wtPt *cmsCIEXYZ, src *cmsCIEXYZ)
func SliceToLab ¶
func SliceToLab(f []float64) cmsCIELab
func SliceToMat ¶
func SliceToMat(s []float64) cmsMAT3
func SliceToVec ¶
func SliceToVec(s []float64) cmsVEC3
func SlopeLimiting ¶
func SlopeLimiting(g *CmsToneCurve)
Normalize endpoints by slope limiting max and min. This assures endpoints as well. Descending curves are handled as well.
func StringToUTF16Slice ¶
StringToUTF16Slice converts a Go string to a slice of uint16 for wide characters. StringToUTF16Slice converts a Go string to a UTF-16 encoded []uint16 (with null terminator)
func SwapFirstFloat ¶
func T_CHANNELS ¶
func T_COLORSPACE ¶
func T_ENDIAN16 ¶
func T_OPTIMIZED ¶
func T_SWAPFIRST ¶
func Temp2CHAD ¶
func Temp2CHAD(Chad *cmsMAT3, Temp float64)
Compute a CHAD based on a given temperature
func TetrahedralInterp16 ¶
func TetrahedralInterpFloat ¶
TetrahedralInterpFloat — 3D tetrahedral for float32 (no K split).
func TransformOnePixelWithGamutCheck ¶
Auxiliary: Handle precalculated gamut check. The retrieval of context may be alittle bit slow, but this function is not critical.
func TranslateNonICCIntents ¶
func TrilinearInterp16 ¶
TrilinearInterp16 performs trilinear interpolation for 16-bit values.
func TrilinearInterpFloat ¶
TrilinearInterpFloat performs trilinear interpolation for floating-point values.
func TypeChromaticityDup ¶
Type_Chromaticity_Dup duplicates a Chromaticity structure.
func TypeChromaticityFree ¶
Type_Chromaticity_Free frees the memory allocated for a Chromaticity structure.
func TypeChromaticityRead ¶
func TypeChromaticityRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
Type_Chromaticity_Read reads a Chromaticity type from the IO handler.
func TypeChromaticityWrite ¶
func TypeChromaticityWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, nItems uint32) bool
Type_Chromaticity_Write writes a Chromaticity type to the IO handler.
func TypeColorantTableDup ¶
func TypeColorantTableFree ¶
func TypeColorantTableRead ¶
func TypeColorantTableWrite ¶
func TypeCrdInfoDup ¶
func TypeCrdInfoFree ¶
func TypeCrdInfoRead ¶
func TypeCrdInfoWrite ¶
func TypeCurveDup ¶
func TypeCurveFree ¶
func TypeCurveRead ¶
func TypeCurveWrite ¶
func TypeDataFree ¶
func TypeDataRead ¶
func TypeDataRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
******************************************************************************** Type CmsSigDataType ********************************************************************************
func TypeDataWrite ¶
func TypeDateTimeDup ¶
func TypeDateTimeFree ¶
func TypeDateTimeRead ¶
func TypeDateTimeRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
A 12-byte value representation of the time and date, where the byte usage is assigned as specified in table 1. The actual values are encoded as 16-bit unsigned integers (uInt16Number - see 5.1.6).
All the dateTimeNumber values in a profile shall be in Coordinated Universal Time (UTC, also known as GMT or ZULU Time). Profile writers are required to convert local time to UTC when setting these values. Programs that display these values may show the dateTimeNumber as UTC, show the equivalent local time (at current locale), or display both UTC and local versions of the dateTimeNumber.
func TypeDateTimeWrite ¶
func TypeDictionaryDup ¶
func TypeDictionaryFree ¶
func TypeDictionaryRead ¶
func TypeDictionaryWrite ¶
func TypeLUT8Dup ¶
func TypeLUT8Free ¶
func TypeLUT8Read ¶
func TypeLUT8Write ¶
func TypeLUT16Dup ¶
func TypeLUT16Free ¶
func TypeLUT16Read ¶
func TypeLUT16Write ¶
func TypeLUTA2BDup ¶
func TypeLUTA2BFree ¶
func TypeLUTA2BRead ¶
func TypeLUTA2BRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
This structure represents a colour transform. The type contains up to five processing elements which are stored in the AtoBTag tag in the following order: a set of one dimensional curves, a 3 by 3 matrix with offset terms, a set of one dimensional curves, a multidimensional lookup table, and a set of one dimensional output curves. Data are processed using these elements via the following sequence:
("A" curves) -> (multidimensional lookup table - CLUT) -> ("M" curves) -> (matrix) -> ("B" curves).
It is possible to use any or all of these processing elements. At least one processing element must be included.Only the following combinations are allowed:
B M - Matrix - B A - CLUT - B A - CLUT - M - Matrix - B
func TypeLUTA2BWrite ¶
func TypeLUTB2ADup ¶
func TypeLUTB2AFree ¶
func TypeLUTB2ARead ¶
func TypeLUTB2AWrite ¶
func TypeMLUFree ¶
func TypeMLURead ¶
func TypeMLURead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
******************************************************************************** Type CmsSigMultiLocalizedUnicodeType ********************************************************************************
Do NOT trust SizeOfTag as there is an issue on the definition of profileSequenceDescTag. See the TechNote from Max Derhak and Rohit Patil about this: basically the size of the string table should be guessed and cannot be taken from the size of tag if this tag is embedded as part of bigger structures (profileSequenceDescTag, for instance)
func TypeMLUWrite ¶
func TypeMPEDup ¶
func TypeMPEFree ¶
func TypeMPERead ¶
func TypeMPEWrite ¶
func TypeMPEclutRead ¶
func TypeMPEclutWrite ¶
func TypeMPEcurveRead ¶
func TypeMPEcurveRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
Type_MPEcurve_Read reads MPE curve type
func TypeMPEcurveWrite ¶
func TypeMPEcurveWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, nItems uint32) bool
Type_MPEcurve_Write writes the MPE curve type
func TypeMPEmatrixRead ¶
func TypeMPEmatrixWrite ¶
func TypeMeasurementDup ¶
func TypeMeasurementFree ¶
func TypeMeasurementRead ¶
func TypeMeasurementRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
The measurementType information refers only to the internal profile data and is meant to provide profile makers an alternative to the default measurement specifications.
func TypeMeasurementWrite ¶
func TypeNamedColorDup ¶
func TypeNamedColorFree ¶
func TypeNamedColorRead ¶
func TypeNamedColorRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
******************************************************************************** Type CmsSigNamedColor2Type ********************************************************************************
The namedColor2Type is a count value and array of structures that provide color coordinates for 7-bit ASCII color names. For each named color, a PCS and optional device representation of the color are given. Both representations are 16-bit values. The device representation corresponds to the header's 'color space of data' field. This representation should be consistent with the 'number of device components' field in the namedColor2Type. If this field is 0, device coordinates are not provided. The PCS representation corresponds to the header's PCS field. The PCS representation is always provided. Color names are fixed-length, 32-byte fields including null termination. In order to maintain maximum portability, it is strongly recommended that special characters of the 7-bit ASCII set not be used.
func TypeNamedColorWrite ¶
func TypeParametricCurveDup ¶
TypeParametricCurveDup duplicates a parametric curve.
func TypeParametricCurveFree ¶
TypeParametricCurveFree frees a parametric curve.
func TypeParametricCurveRead ¶
func TypeParametricCurveRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, SizeOfTag uint32) any
TypeParametricCurveRead reads a parametric curve from the IO handler.
func TypeParametricCurveWrite ¶
func TypeParametricCurveWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, nItems uint32) bool
TypeParametricCurveWrite writes a parametric curve to the IO handler.
func TypeS15Fixed16Dup ¶
func TypeS15Fixed16Free ¶
func TypeS15Fixed16Read ¶
func TypeS15Fixed16Write ¶
func TypeScreeningDup ¶
func TypeScreeningFree ¶
func TypeScreeningRead ¶
func TypeScreeningRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
******************************************************************************** Type CmsSigScreeningType ********************************************************************************
The screeningType describes various screening parameters including screen frequency, screening angle, and spot shape.
func TypeScreeningWrite ¶
func TypeSignatureDup ¶
TypeSignatureDup duplicates a CmsSignature.
func TypeSignatureFree ¶
func TypeSignatureRead ¶
func TypeSignatureRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
******************************************************************************** Type CmsSigSignatureType ********************************************************************************
The signatureType contains a four-byte sequence, Sequences of less than four characters are padded at the end with spaces, 20h. Typically this type is used for registered tags that can be displayed on many development systems as a sequence of four characters. TypeSignatureRead reads a CmsSignature from the io handler.
func TypeSignatureWrite ¶
func TypeSignatureWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, nItems uint32) bool
TypeSignatureWrite writes a CmsSignature to the io handler.
func TypeTextDescriptionDup ¶
Type_Text_Description_Dup duplicates a cmsMLU object
func TypeTextDescriptionFree ¶
Type_Text_Description_Free frees a cmsMLU object
func TypeTextDescriptionRead ¶
func TypeTextDescriptionWrite ¶
func TypeTextDescriptionWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, nItems uint32) bool
This tag can come IN UNALIGNED SIZE. In order to prevent issues, we force zeros on description to align it Type_Text_Description_Write writes a text description tag
func TypeTextDup ¶
Type_Text_Dup duplicates a text type structure.
func TypeTextFree ¶
Type_Text_Free frees a text type structure.
func TypeTextRead ¶
func TypeTextRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
Type_Text_Read reads a text type structure from the io handler.
func TypeTextWrite ¶
func TypeTextWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, nItems uint32) bool
Type_Text_Write writes a text type structure to the io handler.
func TypeU16Fixed16Dup ¶
func TypeU16Fixed16Free ¶
func TypeU16Fixed16Read ¶
func TypeU16Fixed16Write ¶
func TypeUcrBgDup ¶
func TypeUcrBgFree ¶
func TypeUcrBgRead ¶
func TypeUcrBgRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
******************************************************************************** Type CmsSigUcrBgType ********************************************************************************
This type contains curves representing the under color removal and black generation and a text string which is a general description of the method used for the ucr/bg.
func TypeUcrBgWrite ¶
func TypeVcgtFree ¶
func TypeVcgtRead ¶
func TypeVcgtWrite ¶
func TypeVideoSignalDup ¶
Duplicate a video signal tag
func TypeVideoSignalFree ¶
Free a video signal tag
func TypeVideoSignalRead ¶
func TypeVideoSignalRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, sizeOfTag uint32) any
Read a video signal tag
func TypeVideoSignalWrite ¶
func TypeVideoSignalWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, nItems uint32) bool
Write a video signal tag
func TypeXYZDup ¶
Type_XYZ_Dup duplicates XYZ color space data.
func TypeXYZFree ¶
Type_XYZ_Free frees XYZ color space data.
func TypeXYZRead ¶
func TypeXYZRead(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, nItems *uint32, SizeOfTag uint32) any
Type_XYZ_Read reads XYZ color space data.
func TypeXYZWrite ¶
func TypeXYZWrite(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, ptr any, nItems uint32) bool
Type_XYZ_Write writes XYZ color space data.
func Uint16sToBytesLE ¶
func Unroll1Byte ¶
func Unroll1Byte(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll1Byte duplicates L into RGB channels for monochrome data.
func Unroll1ByteReversed ¶
func Unroll1ByteReversed(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll1ByteReversed processes monochrome data with reversed flavor.
func Unroll1ByteSkip1 ¶
func Unroll1ByteSkip1(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll1ByteSkip1 processes monochrome data, skipping one channel.
func Unroll1ByteSkip2 ¶
func Unroll1ByteSkip2(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll1ByteSkip2 processes monochrome data, skipping two channels.
func Unroll1Word ¶
func Unroll1WordReversed ¶
func Unroll1WordSkip3 ¶
func Unroll2Bytes ¶
func Unroll2Bytes(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll2Bytes processes duplex values from 8-bit input.
func Unroll2Words ¶
func Unroll3Bytes ¶
func Unroll3Bytes(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll3Bytes processes 3 bytes in RGB order.
func Unroll3BytesSkip1Swap ¶
func Unroll3BytesSkip1Swap(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll3BytesSkip1Swap processes 3 bytes, skips 1 (A), and swaps to BRG order.
func Unroll3BytesSkip1SwapFirst ¶
func Unroll3BytesSkip1SwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll3BytesSkip1SwapFirst processes 3 bytes, skips 1 (A), and places R first.
func Unroll3BytesSkip1SwapSwapFirst ¶
func Unroll3BytesSkip1SwapSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll3BytesSkip1SwapSwapFirst processes 3 bytes, skips 1 (A), and swaps to BRG order with the first byte swapped.
func Unroll3BytesSwap ¶
func Unroll3BytesSwap(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll3BytesSwap processes 3 bytes in BRG order.
func Unroll3Words ¶
func Unroll3WordsSkip1Swap ¶
func Unroll3WordsSwap ¶
func Unroll4Bytes ¶
func Unroll4Bytes(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll4Bytes processes 4 bytes in sequence.
func Unroll4BytesReverse ¶
func Unroll4BytesReverse(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll4BytesReverse processes 4 bytes with reverse flavor applied.
func Unroll4BytesSwap ¶
func Unroll4BytesSwap(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll4BytesSwap processes 4 bytes in KYMC order.
func Unroll4BytesSwapFirst ¶
func Unroll4BytesSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll4BytesSwapFirst processes 4 bytes with the first byte swapped to the last position.
func Unroll4BytesSwapSwapFirst ¶
func Unroll4BytesSwapSwapFirst(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unroll4BytesSwapSwapFirst processes 4 bytes in swapped order with the first byte swapped.
func Unroll4Words ¶
func Unroll4WordsReverse ¶
func Unroll4WordsSwap ¶
func Unroll4WordsSwapFirst ¶
func Unroll8ToFloat ¶
func Unroll16ToFloat ¶
func UnrollALabV2_8 ¶
func UnrollALabV2_8(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
UnrollALabV2_8 processes ALab values from 8-bit input, skipping the alpha channel.
func UnrollALabV2_8ToFloat ¶
func UnrollAnyWords ¶
func UnrollAnyWordsPremul ¶
func UnrollChunkyBytes ¶
func UnrollChunkyBytes(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
Unpacking routines (16 bits) ----------------------------------------------------------------------------------------
func UnrollDouble1Chan ¶
func UnrollDoubleTo16 ¶
func UnrollDoublesToFloat ¶
func UnrollFloatTo16 ¶
func UnrollFloatsToFloat ¶
func UnrollHalfTo16 ¶
func UnrollHalfToFloat ¶
func UnrollLabDoubleTo16 ¶
func UnrollLabDoubleToFloat ¶
func UnrollLabFloatTo16 ¶
func UnrollLabFloatToFloat ¶
func UnrollLabV2_8 ¶
func UnrollLabV2_8(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
UnrollLabV2_8 processes Lab values from 8-bit input and converts them to 16-bit.
func UnrollLabV2_8ToFloat ¶
func UnrollLabV2_16 ¶
func UnrollLabV2_16(mm mem.Manager, info *cmsTRANSFORM, wIn []uint16, accum []uint8, stride uint32) []uint8
UnrollLabV2_16 processes Lab values from 16-bit input.
func UnrollLabV2_16ToFloat ¶
func UnrollNothing ¶
func UnrollPlanarBytes ¶
func UnrollPlanarWords ¶
func UnrollPlanarWordsPremul ¶
func UnrollXYZDoubleTo16 ¶
func UnrollXYZDoubleToFloat ¶
func UnrollXYZFloatTo16 ¶
func UnrollXYZFloatToFloat ¶
func UpstreamVersion ¶
func UpstreamVersion() string
func VecToSlice ¶
func VecToSlice(vec cmsVEC3) []float64
func WhitesAreEqual ¶
func Write8bitTables ¶
func Write8bitTables(ContextID CmsContext, io *cmsIOHANDLER, n uint32, tables *cmsStageToneCurvesData) bool
func Write16bitTables ¶
func Write16bitTables(ContextID CmsContext, io *cmsIOHANDLER, tables *cmsStageToneCurvesData) bool
func WriteCountAndString ¶
func WriteMPECurve ¶
func WriteMPECurve(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, n, sizeOfTag uint32) bool
WriteMPECurve writes a curve for MPE
func WriteMatrix ¶
func WriteOffsetArray ¶
Write offset array
func WriteOneElem ¶
Write a single element
func WriteOneMLUC ¶
func WriteOneMLUC(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, e *cmsDICelem, i uint32, mlu *cmsMLU, baseOffset uint32) bool
Write an MLUC element
func WriteOneWChar ¶
Read a single wchar string
func WritePositionTable ¶
func WriteSegmentedCurve ¶
func WriteSegmentedCurve(io *cmsIOHANDLER, curve *CmsToneCurve) bool
WriteSegmentedCurve writes a single segmented curve
func WriteSeqID ¶
func WriteSetOfCurves ¶
Types ¶
type CmsCIExyYTRIPLE ¶
CmsCIExyYTRIPLE represents a set of primary colors (Red, Green, Blue) in the CIE xyY color space
type CmsContext ¶
type CmsContext *CmsContextStruct
var ( CmsContextPoolHeadMutex sync.Mutex CmsContextPoolHead CmsContext )
C-code The context pool (linked list head) NOT IMPEMENTED NEEDS FURTHER CONSIDERATION
static _cmsMutex _cmsContextPoolHeadMutex = CMS_MUTEX_INITIALIZER; static struct _cmsContext_struct* _cmsContextPoolHead = NULL;
Mutex for context pool head
type CmsContextStruct ¶
type CmsContextStruct struct {
Next CmsContext // Points to next context in the new style
MemPool *cmsSubAllocator // The memory pool that stores context data
// If NULL, then it reverts to global Context0
DefaultMemoryManager cmsMemPluginChunkType // The allocators used for creating the context itself. Cannot be overridden
// contains filtered or unexported fields
}
Internal structure for context
type CmsHPROFILE ¶
type CmsHPROFILE any
func CmsCreateGrayProfile ¶
func CmsCreateGrayProfile(mm mem.Manager, WhitePoint *CmsCIExyY, TransferFunction *CmsToneCurve) CmsHPROFILE
func CmsCreateLab2Profile ¶
func CmsCreateLab2Profile(mm mem.Manager, WhitePoint *CmsCIExyY) CmsHPROFILE
func CmsCreateRGBProfile ¶
func CmsCreateRGBProfile(mm mem.Manager, WhitePoint *CmsCIExyY, Primaries *CmsCIExyYTRIPLE, TransferFunction []*CmsToneCurve) CmsHPROFILE
func CmsCreateRGBProfileTHR ¶
func CmsCreateRGBProfileTHR(mm mem.Manager, ContextID CmsContext, WhitePoint *CmsCIExyY, Primaries *CmsCIExyYTRIPLE, TransferFunction []*CmsToneCurve) CmsHPROFILE
func CmsCreateXYZProfile ¶
func CmsCreateXYZProfile(mm mem.Manager) CmsHPROFILE
func CmsCreate_sRGBProfile ¶
func CmsCreate_sRGBProfile(mm mem.Manager) CmsHPROFILE
func CmsCreate_sRGBProfileTHR ¶
func CmsCreate_sRGBProfileTHR(mm mem.Manager, ContextID CmsContext) CmsHPROFILE
func CmsOpenProfileFromFile ¶
func CmsOpenProfileFromFile(mm mem.Manager, ICCProfile string, sAccess string) CmsHPROFILE
func CmsOpenProfileFromMem ¶
func CmsOpenProfileFromMem(mm mem.Manager, MemPtr any, dwSize uint32) CmsHPROFILE
type CmsHTRANSFORM ¶
type CmsHTRANSFORM any
func CmsCreateTransform ¶
func CmsCreateTransform(mm mem.Manager, Input CmsHPROFILE, InputFormat uint32, Output CmsHPROFILE, OutputFormat uint32, Intent uint32, dwFlags uint32, ) CmsHTRANSFORM
func CreateRoundtripXForm ¶
func CreateRoundtripXForm(mm mem.Manager, hProfile CmsHPROFILE, nIntent uint32) CmsHTRANSFORM
CreateRoundtripXForm creates a PCS -> PCS round trip transform, always using relative intent on the device -> PCS.
type CmsICCHeader ¶
type CmsICCHeader struct {
Size uint32 // Profile size in bytes
CmmId cmsSignature // CMM for this profile
Version uint32 // 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 uint32 // Various bit settings
Manufacturer cmsSignature // Device manufacturer
Model uint32 // Device model number
Attributes uint64 // Device attributes
RenderingIntent uint32 // Rendering intent
Illuminant cmsEncodedXYZNumber // Profile illuminant
Creator cmsSignature // Profile creator
ProfileID cmsProfileID // Profile ID using MD5
Reserved [28]uint8 // Reserved for future use
}
Profile header -- it is 32-bit aligned, so no issues are expected on alignment
type CmsInfoType ¶
type CmsInfoType int
type CmsTagEntry ¶
type CmsTagEntry struct {
Sig cmsTagSignature // The tag signature
Offset uint32 // Start of tag
Size uint32 // Size in bytes
}
A tag entry in directory
type CmsToneCurve ¶
type CmsToneCurve cms_curve_struct
func AllocateToneCurveStruct ¶
func AllocateToneCurveStruct(mm mem.Manager, ContextID CmsContext, nEntries uint32, nSegments uint32, Segments []cmsCurveSegment, Values []uint16, ) *CmsToneCurve
AllocateToneCurveStruct allocates memory for a tone curve structure.
func Build_sRGBGamma ¶
func Build_sRGBGamma(mm mem.Manager, ContextID CmsContext) *CmsToneCurve
func CmsBuildGamma ¶
func CmsBuildGamma(mm mem.Manager, ContextID CmsContext, Gamma float64) *CmsToneCurve
Build a gamma table based on gamma constant
func ComputeKToLstar ¶
func ComputeKToLstar(mm mem.Manager, ContextID CmsContext, nPoints uint32, nProfiles uint32, Intents []uint32, hProfiles []CmsHPROFILE, BPC []bool, AdaptationStates []float64, dwFlags uint32) *CmsToneCurve
Compute K -> L* relationship. Flags may include black point compensation. In this case, the relationship is assumed from the profile with BPC to a black point zero.
func ConvertToToneCurveArray ¶
func ConvertToToneCurveArray(curves []*CmsToneCurve) [3]*CmsToneCurve
func ReadEmbeddedCurve ¶
func ReadEmbeddedCurve(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER) *CmsToneCurve
func ReadSegmentedCurve ¶
func ReadSegmentedCurve(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER) *CmsToneCurve
ReadSegmentedCurve reads an embedded segmented curve
type Curves16Data ¶
type Curves16Data struct {
ContextID CmsContext
NCurves uint32 // Number of curves
NElements uint32 // Elements in curves
Curves [][]uint16 // Points to a dynamically allocated array
}
func CurvesAlloc ¶
func CurvesAlloc(mm mem.Manager, ContextID CmsContext, nCurves, nElements uint32, G []*CmsToneCurve) *Curves16Data
type FILEMEM ¶
type FILEMEM struct {
Block []byte // Points to allocated memory
Size uint32 // Size of allocated memory
Pointer uint32 // Points to current location
FreeBlockOnClose bool // Indicates if the block should be freed on close
}
FILEMEM represents the memory-based stream structure.
type FILENULL ¶
type FILENULL struct {
Pointer uint32 // Points to current location
}
FILENULL represents the null file structure for tracking byte usage.
type GAMUTCHAIN ¶
type GAMUTCHAIN struct {
Threshold float64 // The threshold after which is considered out of gamut
// contains filtered or unexported fields
}
Define the GAMUTCHAIN structure
type GrayOnlyParams ¶
type GrayOnlyParams struct {
Cmyk2Cmyk *cmsPipeline // The original transform
KTone *CmsToneCurve // Black-to-black tone curve
}
type ISOTEMPERATURE ¶
type ISOTEMPERATURE struct {
Mirek float64 // Temperature in microreciprocal kelvin
Ut float64 // u coordinate of intersection with blackbody locus
Vt float64 // v coordinate of intersection with blackbody locus
Tt float64 // Slope of ISOTEMPERATURE line
}
ISOTEMPERATURE represents isotemperature data used for white point conversions.
type MatShaper8Data ¶
type MatShaper8Data struct {
ContextID CmsContext
// Shapers from 0..255 to 1.14 fixed
Shaper1R [256]cmsS1Fixed14Number
Shaper1G [256]cmsS1Fixed14Number
Shaper1B [256]cmsS1Fixed14Number
// Matrix and offset (n.14 fixed)
Mat [3][3]cmsS1Fixed14Number
Off [3]cmsS1Fixed14Number
// Shapers from 1.14 fixed to 0..255
Shaper2R [16385]uint16
Shaper2G [16385]uint16
Shaper2B [16385]uint16
}
type PluginIntrfc ¶
type PluginIntrfc interface {
// Common methods all plugins must implement
GetBase() *cmsPluginBase
PluginType() uint32
GetNext() PluginIntrfc
}
cmsPluginBase represents the base structure for plugins.
type PositionTableEntryFn ¶
type PositionTableEntryFn func(mm mem.Manager, self *cmsTagTypeHandler, io *cmsIOHANDLER, cargo any, n, SizeOfTag uint32) bool
To deal with position tables
type Prelin8Data ¶
type Prelin8Data struct {
ContextID CmsContext
// Tetrahedral interpolation parameters (not-owned pointer)
P *cmsInterpParams
Rx [256]uint16
Ry [256]uint16
Rz [256]uint16
// Precomputed nodes and offsets for 8-bit input data
X0 [256]uint32
Y0 [256]uint32
Z0 [256]uint32
}
func PrelinOpt8alloc ¶
func PrelinOpt8alloc(mm mem.Manager, ContextID CmsContext, p *cmsInterpParams, G [3]*CmsToneCurve) *Prelin8Data
type Prelin16Data ¶
type Prelin16Data struct {
ContextID CmsContext
// Number of channels
NInputs uint32
NOutputs uint32
// Input curves
EvalCurveIn16 [MAX_INPUT_DIMENSIONS]cmsInterpFn16
ParamsCurveIn16 [MAX_INPUT_DIMENSIONS]*cmsInterpParams
// 3D grid evaluator
EvalCLUT cmsInterpFn16
CLUTParams *cmsInterpParams // Not-owned pointer
// Output curves
EvalCurveOut16 []cmsInterpFn16 // Points to an array of curve evaluators in 16 bits (not-owned pointer)
ParamsCurveOut16 []*cmsInterpParams // Points to an array of references to interpolation params (not-owned pointer)
}
func PrelinOpt16alloc ¶
func PrelinOpt16alloc(mm mem.Manager, ContextID CmsContext, ColorMap *cmsInterpParams, nInputs uint32, In []*CmsToneCurve, nOutputs uint32, Out []*CmsToneCurve) *Prelin16Data
PrelinOpt16alloc allocates and initializes Prelin16Data
type PreserveKPlaneParams ¶
type PreserveKPlaneParams struct {
Cmyk2Cmyk *cmsPipeline // The original transform
HProofOutput CmsHTRANSFORM // Output CMYK to Lab (last profile)
Cmyk2Lab CmsHTRANSFORM // The input chain
KTone *CmsToneCurve // Black-to-black tone curve
LabK2Cmyk *cmsPipeline // The output profile
MaxError float64 // Maximum error
HRoundTrip CmsHTRANSFORM // Round-trip transform
MaxTAC float64 // Maximum total area coverage
}
K Plane-preserving CMYK to CMYK ------------------------------------------------------------------------------------
Source Files
¶
- cmsalpha.go
- cmscam02.go
- cmscgats.go
- cmscnvrt.go
- cmserr.go
- cmsgamma.go
- cmsgmt.go
- cmshalf.go
- cmsintrp.go
- cmsio0.go
- cmsio1.go
- cmslut.go
- cmsmd5.go
- cmsmtrx.go
- cmsnamed.go
- cmsopt.go
- cmspack.go
- cmspcs.go
- cmsplugin.go
- cmsps2.go
- cmssamp.go
- cmssm.go
- cmstypes.go
- cmstypes_linux.go
- cmsvirt.go
- cmsvirt_linux.go
- cmswtpnt.go
- cmsxform.go
- lcms2.go
- lcms2_internal.go
- lcms2_plugin.go
- lcms_version.go
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
golcms-demo
command
|
|
|
SPDX-License-Identifier: MIT
|
SPDX-License-Identifier: MIT |