Platforms to show: All Mac Windows Linux Cross-Platform

Back to LCMS2MBS module.

Next items

LCMS2MBS.AdaptationMatrix(ConeMatrix as LCMS2Mat3MBS, FromIll as LCMS2CIEXYZMBS, ToIll as LCMS2CIEXYZMBS) as LCMS2Mat3MBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Calculates adaptation matrix.

Returns the final chromatic adaptation from illuminant FromIll to Illuminant ToIll.
The cone matrix can be specified in ConeMatrix. If nil, Bradford is assumed.

ConeMatrix: the cone matrix.
FromIll: Source illuminant.
ToIll: Destination illuminant.

Returns matrix on success or nil on failure.

Some examples using this method:

LCMS2MBS.AdaptToIlluminant(SourceWhitePt as LCMS2CIEXYZMBS, Illuminant as LCMS2CIEXYZMBS, Value as LCMS2CIEXYZMBS) as LCMS2CIEXYZMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Chromatic adaptation.

Adapts a color to a given illuminant. Original color is expected to have a SourceWhitePt white point.

LCMS2MBS.BFDdeltaE(Lab1 as LCMS2CIELabMBS, Lab2 as LCMS2CIELabMBS) as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Computes the dE between two Lab values.

LCMS2MBS.BIT15_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 20.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

Bit15 flag

LCMS2MBS.BuildRGB2XYZtransferMatrix(WhitePoint as LCMS2CIExyYMBS, Primaries as LCMS2CIExyYTripleMBS) as LCMS2Mat3MBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Builds RGB to XYZ transfer matrix.

Build a White point, primary chromas transfer matrix from RGB to CIE XYZ.
This is just an approximation, I am not handling all the non-linear aspects of the RGB to XYZ process, and assumming that the gamma correction has transitive property in the tranformation chain.

The alghoritm:

  • First I build the absolute conversion matrix using primaries in XYZ. This matrix is next inverted
  • Then I eval the source white point across this matrix obtaining the coeficients of the transformation
  • Then, I apply these coeficients to the original matrix

WhitePoint: The white point.
Primaries: The primaries.
Returns matrix on success or nil on failure.

Some examples using this method:

LCMS2MBS.BYTES_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

bytes per sample

Some examples using this method:

LCMS2MBS.ChannelsOf(ColorSpaceSignature as Integer) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Returns the number of channels in a color space signature.
Example
MsgBox "RGB has "+str(LCMS2MBS.ChannelsOf(LCMS2MBS.kcmsSigRgbData))+" channels"

LCMS2MBS.CHANNELS_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

Channels (Samples per pixel)

Some examples using this method:

LCMS2MBS.CIE2000DeltaE(Lab1 as LCMS2CIELabMBS, Lab2 as LCMS2CIELabMBS, Kl as Double = 1.0, Kc as Double = 1.0, Kh as Double = 1.0) as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Calculates the Delta-E 2000.

Delta-E 2000 is the first major revision of the dE94 equation. Unlike dE94, which assumes that L* correctly reflects the perceived differences in lightness, dE2000 varies the weighting of L* depending on where in the lightness range the color falls. dE2000 is still under consideration and does not seem to be widely supported in graphics arts applications.

The weightings KL, KC and KH can be modified to reflect the relative importance of lightness, chroma and hue in different industrial applications

LCMS2MBS.CIE94DeltaE(Lab1 as LCMS2CIELabMBS, Lab2 as LCMS2CIELabMBS) as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Calculates the CIE 94 delta e value.

A technical committee of the CIE (TC1-29) published an equation in 1995 called CIE94. The equation is similar to CMC but the weighting functions are largely based on RIT/DuPont tolerance data derived from automotive paint experiments where sample surfaces are smooth.
It also has ratios, labeled kL (lightness) and Kc (chroma) and the commercial factor (cf) but these tend to be preset in software and are not often exposed for the user (as it is the case in Little CMS).

LCMS2MBS.CMCdeltaE(Lab1 as LCMS2CIELabMBS, Lab2 as LCMS2CIELabMBS, l as Double, c as Double) as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Calculates the CMC delta E.

In 1984 the CMC (Colour Measurement Committee of the Society of Dyes and Colourists of Great Britain) developed and adopted an equation based on LCH numbers. Intended for the textiles industry, CMC l:c allows the setting of lightness (l) and chroma (c) factors. As the eye is more sensitive to chroma, the default ratio for l:c is 2:1 allowing for 2x the difference in lightness than chroma (numbers). There is also a 'commercial factor' (cf) which allows an overall varying of the size of the tolerance region according to accuracy requirements. A cf=1.0 means that a delta-E CMC value <1.0 is acceptable.
CMC l:c is designed to be used with D65 and the CIE Supplementary Observer. Commonly-used values for l:c are 2:1 for acceptability and 1:1 for the threshold of imperceptibility.

LCMS2MBS.ColorSpaceICCtoLCMS(ICCColorSpace as Integer) as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.4 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Converts from ICC color space notation to Little CMS color space notation.

LCMS2MBS.ColorSpaceLCMStoICC(LCMSColorSpace as Integer) as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.4 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Converts from Little CMS color space notation to ICC color space notation.

LCMS2MBS.COLORSPACE_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

Pixeltype.

LCMS2MBS.CreateBitmapFromPicture(p as picture, bits as Integer = 8) as LCMS2BitmapMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Creates a new bitmap based on the pictures.

Bits can be 8, 16 or 32 bit integers.

LCMS2MBS.D50_xyY as LCMS2CIExyYMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Returns D50 white point as xyY color.

Some examples using this method:

LCMS2MBS.D50_XYZ as LCMS2CIEXYZMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Returns D50 white point as XYZ color.

Some examples using this method:

LCMS2MBS.DeltaE(Lab1 as LCMS2CIELabMBS, Lab2 as LCMS2CIELabMBS) as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Calculates delta E.

You don't have to spend too long in the color management world before you come across the term Delta-E. As with many things color, it seems simple to understand at first, yet the closer you look, the more elusive it gets. Delta-E (dE) is a single number that represents the 'distance' between two colors. The idea is that a dE of 1.0 is the smallest color difference the human eye can see. So any dE less than 1.0 is imperceptible and it stands to reason that any dE greater than 1.0 is noticeable. Unfortunately it's not that simple. Some color differences greater than 1 are perfectly acceptable, maybe even unnoticeable. Also, the same dE color difference between two yellows and two blues may not look like the same difference to the eye and there are other places where it can fall down. It's perfectly understandable that we would want to have a system to show errors. After all, we've spent the money on the instruments; shouldn't we get numbers from them? Delta-E numbers can be used for:

  • how far off is a print or proof from the original
  • how much has a device drifted
  • how effective is a particular profile for printing or proofing
  • removes subjectivity (as much as possible)
These functions does compute the difference between two Lab colors, using several difference
spaces.

The L*a*b* color space was devised in 1976 and, at the same time delta-E 1976 (dE76) came into being. If you can imagine attaching a string to a color point in 3D Lab space, dE76 describes the sphere that is described by all the possible directions you could pull the string. If you hear people speak of just plain 'delta-E' they are probably referring to dE76. It is also known as dE-Lab and dE- ab. One problem with dE76 is that Lab itself is not 'perceptually uniform' as its creators had intended. So different amounts of visual color shift in different color areas of Lab might have the same dE76 number. Conversely, the same amount of color shift might result in different dE76 values. Another issue is that the eye is most sensitive to hue differences, then chroma and finally lightness and dE76 does not take this into account.

LCMS2MBS.DITHER_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 20.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

dither flag

LCMS2MBS.DOSWAP_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

Do swap? ie, BGR, KYMC

LCMS2MBS.EnableFastFloatExtensions

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 20.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Enables fast float extension for Little CMS 2.10.

Originally this is GPLv3 licensed, but MBS bought a commercial license for all our plugins, so you don't need to worry about the license.

LCMS2MBS.EncodedCMMversion as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 15.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Queries version of LCMS library.
Example
Var e as Integer = LCMS2MBS.EncodedCMMversion
MsgBox str(e \ 1000)+"."+str((e\10) mod 100)+"."+str(e mod 10)

Returns 2070 for version 2.7.

LCMS2MBS.ENDIAN16_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

swap 16 bps endianess?

LCMS2MBS.EXTRA_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

Extra samples

LCMS2MBS.FLAVOR_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

Flavor 0=MinIsBlack(Chocolate) 1=MinIsWhite(Vanilla).

LCMS2MBS.Float2LabEncoded(c as LCMS2CIELabMBS) as Integer()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Encodes a Lab value.

Returns array of 3 encoded UInt16 values.

LCMS2MBS.Float2LabEncodedV2(c as LCMS2CIELabMBS) as Integer()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Encodes a Lab value to ICC v2 convention.

Returns array of 3 encoded UInt16 values.

LCMS2MBS.Float2XYZEncoded(c as LCMS2CIEXYZMBS) as Integer()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Encodes a XYZ value to ICC convention.

Returns three UInt16 values as Integer array.

LCMS2MBS.FLOAT_SH(n as UInt32) as UInt32

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Shifts the value so you can bitwise or it with other values to get a pixel format.

Floating point -- With this flag we can differentiate 16 bits as float and as int.

Some examples using this method:

LCMS2MBS.GetAlarmCodes as Integer()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Gets the current global codes used to mark out-out-gamut on Proofing transforms.

Values are meant to be encoded in 16 bits.
Returns array with 16 integer values.

See also:

LCMS2MBS.GetAlarmCodes(context as LCMS2ContextMBS) as Integer()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 14.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Gets the current global codes used to mark out-out-gamut on Proofing transforms.

Values are meant to be encoded in 16 bits.
Returns array with 16 integer values.

See also:

LCMS2MBS.GetSupportedIntentCodes as UInt32()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.4 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Fills an array with id‐numbers for all supported intents.
Example
Var names() as string = LCMS2MBS.GetSupportedIntentDescriptions
Var codes() as UInt32 = LCMS2MBS.GetSupportedIntentCodes

Var u as Integer = UBound(names)
for i as Integer = 0 to u
MsgBox str(codes(i))+": "+names(i)
next

Little CMS plug‐in architecture allows to implement user‐defined intents; use this function to get info about such extended functionality.

See also:

LCMS2MBS.GetSupportedIntentCodes(context as LCMS2ContextMBS) as UInt32()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 14.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Fills an array with id‐numbers for all supported intents.
Example
Var names() as string = LCMS2MBS.GetSupportedIntentDescriptions
Var codes() as UInt32 = LCMS2MBS.GetSupportedIntentCodes

Var u as Integer = UBound(names)
for i as Integer = 0 to u
MsgBox str(codes(i))+": "+names(i)
next

Little CMS plug‐in architecture allows to implement user‐defined intents; use this function to get info about such extended functionality.

See also:

LCMS2MBS.GetSupportedIntentDescriptions as string()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.4 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Fills an array with descriptions for all supported intents.
Example
MsgBox Join(LCMS2MBS.GetSupportedIntentDescriptions, EndOfLine)

Little CMS plug‐in architecture allows to implement user‐defined intents; use this function to get info about such extended functionality.

LCMS2MBS.GridPoints(n as Integer) as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.4 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Calculates grid points.
Example
MsgBox str(LCMS2MBS.GridPoints(2))

Some examples using this method:

LCMS2MBS.kcmsD50X as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
X value of D50 XYZ normalized to Y=1.0.

LCMS2MBS.kcmsD50Y as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Y value of D50 XYZ normalized to Y=1.0.

LCMS2MBS.kcmsD50Z as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Z value of D50 XYZ normalized to Y=1.0.

LCMS2MBS.kcmsPERCEPTUAL_BLACK_X as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
X of V4 perceptual black.

LCMS2MBS.kcmsPERCEPTUAL_BLACK_Y as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Y of V4 perceptual black.

LCMS2MBS.kcmsPERCEPTUAL_BLACK_Z as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Z of V4 perceptual black.

LCMS2MBS.Lab2LCh(p as LCMS2CIELabMBS) as LCMS2CIELChMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Converts lab color to LCh value.

LCMS2MBS.Lab2XYZ(p as LCMS2CIELabMBS, whitepoint as LCMS2CIEXYZMBS = nil) as LCMS2CIEXYZMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 12.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Converts color to XYZ value.

Setting WhitePoint to NULL forces D50 as white point.

LCMS2MBS.LabEncoded2Float(w0 as UInt16, w1 as UInt16, w2 as UInt16) as LCMS2CIELabMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Decodes a Lab value, encoded on ICC v4 convention to a lab value.

w0, w1 and w2: Array of 3 UInt16 holding the encoded values.
Returns lab color.

Some examples using this method:

LCMS2MBS.LabEncoded2FloatV2(w0 as UInt16, w1 as UInt16, w2 as UInt16) as LCMS2CIELabMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Decodes a Lab value, encoded on ICC v2 convention to a Lab value.

w0, w1 and w2: 3 UInt16 numbers holding the encoded values.

Some examples using this method:

LCMS2MBS.LCh2Lab(p as LCMS2CIELChMBS) as LCMS2CIELabMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Colorimetric space conversion from LCh to Lab.

LCMS2MBS.NewBitmap(width as Integer,height as Integer, colorspace as Integer, RowBytes as Integer, data as memoryblock) as LCMS2BitmapMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method LCMS2 MBS Images Plugin 11.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Creates a bitmap object with given size and color space.

In this variant, you pass the memoryblock with right size.
Passing memoryblock of wrong size can lead into crashs.

See also:

Next items

The items on this page are in the following plugins: MBS Images Plugin.


The biggest plugin in space...