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