69 {
70 initializing = true;
71 InitializeComponent();
73 {
74 channelsBox.Items.Add(item);
75 }
76 MouseWheel += new System.Windows.Forms.MouseEventHandler(ChannelsTool_MouseWheel);
77
79 {
80 channelsBox.Enabled = false;
81 sampleBox.Enabled = false;
82 statsPanel.Controls.Add(new Label
83 {
84 Dock = DockStyle.Fill,
85 Text = "No channel metadata is available for this image.",
86 TextAlign = ContentAlignment.MiddleCenter
87 });
88 initializing = false;
89 return;
90 }
91
92 channelsBox.SelectedIndex = 0;
94 int sample = channel.range?.Length > 0 ? 0 : -1;
95 int defaultMax = channel.BitsPerPixel <= 8 ? byte.MaxValue : ushort.MaxValue;
96 int minimum = sample >= 0 ? channel.range[sample].Min : 0;
97 int maximum = sample >= 0 ? channel.range[sample].Max : defaultMax;
98 if (channel.stats?.Length > 0)
99 {
100 minimum = (int)channel.stats[0].StackMin;
101 maximum = (int)channel.stats[0].StackMax;
102 }
103 minBox.Value = Math.Clamp(minimum, (int)minBox.Minimum, (int)minBox.Maximum);
104 maxBox.Value = Math.Clamp(maximum, (int)maxBox.Minimum, (int)maxBox.Maximum);
105 hist = new HistogramControl(channel);
106 hist.GraphMax = Math.Max(1, (int)maxBox.Value);
107 maxGraphBox.Value = Math.Clamp(maxBox.Value, maxGraphBox.Minimum, maxGraphBox.Maximum);
108 statsPanel.Controls.Add(hist);
109 initializing = false;
110 Shown += async (_, _) => await EnsureHistogramAsync();
111 }