public class WindowLevelExtCommand : RasterCommand Public Class WindowLevelExtCommandInherits RasterCommand
@interface LTWindowLevelExtCommand : LTRasterCommand public class WindowLevelExtCommand extends RasterCommand public ref class WindowLevelExtCommand : public RasterCommand Only TIFF and DICOM file formats are capable of saving images that have been window-leveled. Images can be window-leveled by calling WindowLevelExtCommand and specifying RasterWindowLevelMode.PaintAndProcessing for the flags parameter, by using the WindowLevelExtCommand or by loading an image from a file format that supports Window Leveling. If a window-leveled image is saved as any other file format, the image data will be converted before being saved. For more information, refer to Saving Window-Leveled Images. See WindowLevelCommand for a version of this class using 8-bit lookup tables. LEADTOOLS supports two types of LUTs for 10-16-bit grayscale images (8-bit LUT and 16-bit LUT). Typical grayscale image display and processing is done using an 8-bit LUT. But, you can also use a 16-bit LUT, which offers more precision. Some special video cards and monitors also support display of grayscale images using a 16-bit LUT. For more information, refer to Introduction to Image Processing With LEADTOOLS. For more information, refer to Grayscale Images.
Run the WindowLevelExtCommand on an image.
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing;using Leadtools.ImageProcessing.Core;public void WindowLevelExtCommandExample(){// Load an imageRasterCodecs codecs = new RasterCodecs();codecs.ThrowExceptionsOnInvalidImages = true;RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm"));// Prepare the commandint x;int y;int Size;RasterColor16[] LookupTable;MinMaxBitsCommand MinMaxBits = new MinMaxBitsCommand();MinMaxValuesCommand MinMaxValues = new MinMaxValuesCommand();WindowLevelExtCommand command = new WindowLevelExtCommand();MinMaxBits.Run(image);MinMaxValues.Run(image);Size = (1 << (MinMaxBits.MaximumBit - MinMaxBits.MinimumBit + 1));LookupTable = new Leadtools.RasterColor16[Size];// fill the first half of the LookupTable with RED.for (x = 0; x < Size / 2; x++)LookupTable[x] = new Leadtools.RasterColor16(Leadtools.RasterColor16.MaximumComponent, 0, 0);// fill the rest with gray values.for (x = Size / 2; x < Size; x++){y = (int)((x - MinMaxValues.MinimumValue) * Leadtools.RasterColor16.MaximumComponent / (MinMaxValues.MaximumValue - MinMaxValues.MinimumValue));LookupTable[x] = new Leadtools.RasterColor16(y, y, y);}command.HighBit = MinMaxBits.MaximumBit;command.LowBit = MinMaxBits.MinimumBit;command.LookupTable = LookupTable;command.Order = Leadtools.RasterByteOrder.Bgr;command.Run(image);}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessingImports Leadtools.ImageProcessing.CorePublic Sub WindowLevelExtCommandExample()'Load an imageDim codecs As New RasterCodecs()codecs.ThrowExceptionsOnInvalidImages = TrueDim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm"))' Prepare the commandDim x As LongDim y As LongDim Size As LongDim LookupTable() As RasterColor16Dim MinMaxBits As MinMaxBitsCommand = New MinMaxBitsCommand()Dim MinMaxValues As MinMaxValuesCommand = New MinMaxValuesCommand()Dim Command As WindowLevelExtCommand = New WindowLevelExtCommand()MinMaxBits.Run(image)MinMaxValues.Run(image)Size = (1 << (MinMaxBits.MaximumBit - MinMaxBits.MinimumBit + 1))LookupTable = New RasterColor16(CInt(Size)) {}' fill the first half of the LookupTable with RED.For x = 0 To CInt(Size / 2)LookupTable(CInt(x)) = New RasterColor16(RasterColor16.MaximumComponent, 0, 0)Next' fill the rest with gray values.For x = CInt(Size / 2) To Sizey = CLng(((x - MinMaxValues.MinimumValue) * RasterColor16.MaximumComponent / (MinMaxValues.MaximumValue - MinMaxValues.MinimumValue)))LookupTable(CInt(x)) = New RasterColor16(CInt(y), CInt(y), CInt(y))NextCommand.HighBit = MinMaxBits.MaximumBitCommand.LowBit = MinMaxBits.MinimumBitCommand.LookupTable = LookupTableCommand.Order = RasterByteOrder.BgrCommand.Run(image)End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images"End Class
Leadtools.ImageProcessing.Core Namespace
Introduction to Image Processing With LEADTOOLS
ApplyVoiLookupTableCommand Class
Leadtools.ImageProcessing.Color.GrayScaleToDuotoneCommand
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
