Grayscale Images
LEADTOOLS provides a number of methods for working with grayscale images. Many of these methods work on either grayscale images or color images. Some of the LEADTOOLS methods however, are designed specifically for use with grayscale images, either creating a grayscale image, getting information about a grayscale image, or window leveling.
Creating and working with grayscale images
A color image can be converted to a grayscale image using the GrayScale method. The GrayScaleExt method converts an image to a grayscale image, but provides the user the ability to control the calculation of the grayscale pixel value by giving the R, G and B components different "weights" when calculating the grayscale value.
LEADTOOLS also provides the ConvertToColoredGray method which converts a bitmap into a grayscale bitmap, while allowing the user to add color effects. This creates an image with an "old-fashioned" look. An 8, 12 or 16-bit grayscale can also be colorized using ColorizeGray method.
(Medical only) The ShiftData method selects a specified number of bits from an 8, 12 or 16-bit grayscale bitmap into a mask and places the mask in a new 8, 12 or 16-bit grayscale bitmap. The SelectData method selects a specified number of bits of an 8, 12 or 16-bit grayscale bitmap and puts them into a mask, then colors the bitmap depending on the mask. This can show bitmap variances depending on user-defined conditions.
The BitmapAlpha property lets you get or set the alpha channel information of an image.
The GrayScaleToDuotone method converts a grayscale bitmap into a colored one by mixing or replacing the original values of the pixels with new colors.
The GrayScaleToMultitone method converts a grayscale bitmap into a colored one by mixing or replacing the original values of the pixels with one or more new colors.
The Desaturate method converts the image to a grayscale level by reducing the saturation of each color to zero. The conversion will not change the color resolution.
When working with grayscale images, a LookUp Table (LUT) may be used to remap pixel values. The UseLUT property determines when the LUT is used. If the UseLUT property is TRUE, then the LUT is used in all image processing methods and when saving an image. If the UseLUT property is FALSE, the LUT is used only when painting the image. The UseLUT property is used primarily with 12 and 16-bit grayscale images, and may be used in association with window leveling. For more information on window leveling, refer to the "Window Leveling" section given below.
Changing the Highlight pen and Cursor Style (Document/Medical only)
When working with grayscale images containing many midrange grays, the highlight pen and the cursor may be difficult to see properly. When working with automation objects, change the color of the pen that is used for highlighting and selecting by calling the AnnAutoHilightPen property for the automation object. Change the cursor used by an automation object by calling the AnnAutoCursor propertyfor the automation object. By changing the highlight pen color and the cursor style, highlight and cursor visibility can be improved.
Getting information about grayscale images
LEADTOOLS also provides method for getting information about grayscale images. The GetMinMaxBits method provides information on the minimum and maximum bit set in a 12 or 16 - bit grayscale image. The GetMinMaxVal method gets the minimum and maximum intensity values present in a 12 or 16-bit grayscale image. Please note that support for 12 and 16-bit grayscale images is only available in Document/Medical toolkits.
To determine the kind of grayscale palette associated with a bitmap, if any, check the IsGrayScale property.
Window leveling (Medical only)
Window leveling is only valid for 12 and 16-bit grayscale images, and is used to map grayscale intensities by specifying the bit range and/or a user defined color map. WindowLevel converts the image to a window leveled 8 or 24 bit RGB bitmap. The bit range is passed to the functions through the LevelLowBit and LevelHighBit properties and the user defined color map is set using the LevelLUT and LevelLUTLength properties. To help set up a bit range and a color map, use GetMinMaxBits and GetMinMaxVal. GetMinMaxBits gets the minimum and maximum bits of the values present in a 12 or 16-bit grayscale image. GetMinMaxVal gets the minimum and maximum intensity values of the image. WindowLevelFillLUT fills the user-allocated LUT with a color gradient based on the specified values. For more information, refer to the individual entries for the functions. To set the window level options and process the image using a dialog, call ShowWindowLevelDlg method.