public int Factor { get; set; }
Represents the factor to be applied in the method operation specified in the specified in the Mode drop-down list box in the LUT Curve section of the Window Leveling dialog box. This parameter is used only if the Mode selected is RasterPaletteWindowLevelFlags.Exponential, RasterPaletteWindowLevelFlags.Logarithmic or RasterPaletteWindowLevelFlags.Sigmoid. If RasterPaletteWindowLevelFlags.Exponential or RasterPaletteWindowLevelFlags.Sigmoid is specified, its value can be any integer (+1000/-1000). If RasterPaletteWindowLevelFlags.Logarithmic is specified, its value should be >= 0. If factor = 0, the lookup table will be filled linearly.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Core;
using Leadtools.WinForms.CommonDialogs.Color;
public void windowLevelDlg_Help(object sender, RasterColorDialogHelpEventArgs e)
{
if (e.Dialog == RasterColorDialogHelpName.WindowLevel)
{
MessageBox.Show("Window Level dialog Help");
}
}
public void WindowLevelDialogExample()
{
// initialize the RasterCodecs
RasterCodecs codecs = new RasterCodecs();
// load an image
RasterImage rasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Beauty16.jpg"));
int size;
RasterWindowLevelDialog windowLevelDlg = new RasterWindowLevelDialog();
MinMaxBitsCommand minMaxBitsCmd = new MinMaxBitsCommand();
MinMaxValuesCommand minMaxValuesCmd = new MinMaxValuesCommand();
size = (1 << (rasterImage.HighBit - rasterImage.LowBit + 1));
minMaxBitsCmd.Run(rasterImage);
windowLevelDlg.LowBit = minMaxBitsCmd.MinimumBit;
windowLevelDlg.HighBit = minMaxBitsCmd.MaximumBit;
minMaxValuesCmd.Run(rasterImage);
windowLevelDlg.Low = minMaxValuesCmd.MinimumValue;
windowLevelDlg.High = minMaxValuesCmd.MaximumValue;
windowLevelDlg.AutoProcess = false;
windowLevelDlg.Factor = 0;
windowLevelDlg.Image = rasterImage;
windowLevelDlg.ZoomToFit = true;
windowLevelDlg.ShowPreview = true;
windowLevelDlg.ShowZoomLevel = true;
windowLevelDlg.ShowHelp = false;
windowLevelDlg.ShowRange = true;
windowLevelDlg.Signed = rasterImage.Signed;
windowLevelDlg.LookupTable = new Leadtools.RasterColor[size];
windowLevelDlg.StartColor = new Leadtools.RasterColor(0, 0, 0);
windowLevelDlg.EndColor = new Leadtools.RasterColor(255, 255, 255);
windowLevelDlg.WindowLevelFlags = Leadtools.RasterPaletteWindowLevelFlags.Inside | Leadtools.RasterPaletteWindowLevelFlags.Linear;
windowLevelDlg.Help += new EventHandler<RasterColorDialogHelpEventArgs>(windowLevelDlg_Help);
if (DialogResult.OK == windowLevelDlg.ShowDialog(null))
{
WindowLevelCommand command = new WindowLevelCommand();
command.HighBit = windowLevelDlg.HighBit;
command.LowBit = windowLevelDlg.LowBit;
command.LookupTable = windowLevelDlg.LookupTable;
command.Order = Leadtools.RasterByteOrder.Bgr;
command.Run(rasterImage);
}
// save the resulted image
codecs.Save(rasterImage, Path.Combine(LEAD_VARS.ImagesDir, "WindowLevelDialogResult.bmp"), RasterImageFormat.Bmp, 24);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}