This documentation is for the old version. Go to the latest Graphics Mill docs

ApplyLut Class

This class enables you to apply tone correction using specified look-up table (LUT).

Namespace: Aurigma.GraphicsMill.Transforms
Assembly: Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)

Syntax

Visual Basic
Public NotInheritable Class ApplyLut _
	Inherits PerChannelBitmapTransform
C#
public sealed class ApplyLut : PerChannelBitmapTransform

Remarks

Look-up table (LUT) is an array specifying mapping function for pixels. The algorithm works in the following way: it iterates through each pixels on each channels separately. It takes a channel luminosity and uses it as index in LUT array to get a value to copy to corresponding channel and pixel of the result image. Pseudocode for this algorithm is looking in the following way:

Visual Basic
' This is a pseudocode demonstrating 
' how LUT works. Note, it is not an actual code and 
' this syntax is not correct for Graphics Mill objects! It
' is just used for brevity.

' Let's assume that width and height - image dimension (both for input 
' and output), channelCount - number of channels defined for bitmap pixel format
' (also the same in both bitmaps). LUT is specified look-up table

For i = 0 To height - 1
	For j = 0 To width - 1
		For k = 0 to channelCount - 1
			outputBitmap(i, j, k) = LUT(inputBitmap(i, j, k))
		Next
	Next
Next
C#
// This is a pseudocode demonstrating 
// how LUT works. Note, it is not an actual code and 
// this syntax is not correct for Graphics Mill objects! It
// is just used for brevity.

// Let's assume that width and height - image dimension (both for input 
// and output), channelCount - number of channels defined for bitmap pixel format
// (also the same in both bitmaps). LUT is specified look-up table

for ( i = 0; i < height - 1; i++)
{
	for ( j = 0; j < width - 1; j++)
	{
		for ( k = 0; k < channelCount - 1; k++)
		{
			outputBitmap[i, j, k] = LUT[inputBitmap[i, j, k]];
		}
	}
}

To specify look-up table you should use property Lut. Look-up tables are represented with Aurigma.GraphicsMill.Transforms.Lut class which provides a number of methods allowing to generate LUT as standard function.

As usual LUT should not affect the alpha channel. When property ApplyOnAlpha is set to false, alpha channel is not modified with algorithm even if it is enabled with Channels property.

Examples

Visual Basic
Dim applyLut As New Aurigma.GraphicsMill.Transforms.ApplyLut

'LUT for image posterizing
applyLut.Lut.BuildStaircase(10, False)

applyLut.ApplyTransform(bitmap)
C#
Aurigma.GraphicsMill.Transforms.ApplyLut applyLut = 
    new Aurigma.GraphicsMill.Transforms.ApplyLut();

//LUT for image posterizing
applyLut.Lut.BuildStaircase(10, false);

applyLut.ApplyTransform(bitmap);

Inheritance Hierarchy

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

Object Model




Supported Pixel Formats

Member NameDescription
Format8bppGrayScale8 bits per pixel. Grayscale. 8 bits are used for luminosity level.
Format16bppGrayScale16 bits per pixel. Grayscale. All 16 bits are used for luminosity level (extended pixel format).
Format16bppAGrayScale16 bits per pixel. Grayscale with alpha channel. 8 bits are used for alpha channel and other 8 bits are used for luminosity level.
Format32bppAGrayScale32 bits per pixel. Grayscale with alpha channel. 16 bits are used for alpha channel and other 16 bits are used for luminosity level (extended pixel format).
Format24bppRgb24 bits per pixel. RGB. 8 bits each are used for the red, green, and blue components.
Format32bppRgb32 bits per pixel. RGB. 8 bits each are used for the red, green, and blue components. The rest 8 bits are unused.
Format32bppArgb32 bits per pixel. RGB with alpha channel. 8 bits each are used for the alpha, red, green, and blue components.
Format48bppRgb48 bits per pixel. RGB. 16 bits each are used for the red, green, and blue components (extended pixel format).
Format64bppArgb64 bits per pixel. RGB with alpha channel. 16 bits each are used for the alpha, red, green, and blue components (extended pixel format).
Format32bppCmyk32 bits per pixel. CMYK. 8 bits each are used for the cyan, magenta, yellow, and black components.
Format64bppCmyk64 bits per pixel. CMYK. 16 bits each are used for the cyan, magenta, yellow, and black components (extended pixel format).
Format80bppAcmyk80 bits per pixel. CMYK with alpha channel. 16 bits each are used for the alpha, cyan, magenta, yellow, and black components (extended pixel format).

See Also

Reference