Flags for the ApplyMathematicalLogicCommand (original) (raw)

The following flags indicate the channel that will be used:

Value Meaning
Master All channels.
Red Red channel only.
Green Green channel only.
Blue Blue channel only.

The following flags indicate how to treat the color value:

The following flags indicate the mathematical operation to use. The operations are performed between each component (R, G and B) and Factor:

Value Meaning
OperationAnd Combine each pixel component value and nFactor using a bitwise AND (&).
(pixel = pixel & Factor)
OperationOr Combine each pixel component value and nFactor using a bitwise OR ( ¦ ).
(pixel = pixel | Factor)
OperationXor Combine each pixel component value and nFactor using a bitwise XOR (^).
(pixel = pixel ^ Factor)
OperationAdd Add pixel component value to the nFactor clamping the result to the maximum allowed pixel value.
(pixel = min(pixel + Factor, MaximumPixelValue) )
OperationSubtractFactor Subtract each pixel component value from the nFactor, clamping the result to the allowed pixel range.
(pixel = min(max(Factor - pixel, MinimumPixelValue), MaximumPixelValue) )
OperationSubtractValue Subtract nFactor from each pixel component value, clamping the result to the allowed pixel range
(pixel = min(max(pixel - Factor), MinimumPixelValue, MaximumPixelValue) )
OperationAbsoluteDifference Calculate the absolute difference between Factor and each pixel component value.
(pixel = abs(pixel - Factor))
OperationMultiply Multiply each pixel component value by Factor/100.
(pixel = pixel * Factor / 100)
OperationDivisionByFactor Divide each pixel component value by Factor/100. An error will be returned if Factor = 0.
(pixel = pixel * 100 / Factor)
OperationDivisionByValue Divide nFactor by each pixel values. If the pixel values are 0, the result set to maximum allowed pixel value. (pixel = pixel ? min(Factor / pixel, MaximumPixelValue) : MaximumPixelValue)
OperationAverage Use the average of the each pixel component value and Factor. (pixel = (pixel+Factor) / 2).
OperationMinimum Use the lesser of the pixel component values and Factor:
(pixel = min(pixel, Factor) )
OperationMaximum Use the greater of the pixel component values and Factor:
(pixel = max(pixel, Factor) )

The way MinimumPixelValue and MaximumPixelValue are calculated depends on the bits per pixel and whether the image is signed or unsigned:

if the image is unsigned (most common):

MaximumPixelValue will be : 255 (8-bit), 4095 (12-bit) or 65535 (16-bit)

MinimumPixelValue = 0

if the image is signed (rare case):

MaximumPixelValue will be : 127 (8-bit), 2047 (12-bit) or 32767 (16-bit)

MinimumPixelValue will be -128 (8-bit), -2048 (12-bit) or -32768 (16-bit)

The following flags indicate how to treat the output value:

If the Flags property is OperationAnd, OperationOr, OperationXor, OperationAdd, OperationMinumum, OperationMultiply, OperationMaximum, OperationDivisionByValue , or OperationSubtractValue, the valid range of Factor is:

From MinimumPixelValue to MaximumPixelValue.

For Flags equal to OperationSubtractFator, OperationDifference, OperationAverage, the valid range of Factor is: From 2 * MinimumPixelValue to 2 * MaximumPixelValue.