BioCore  5.0.0
A Windows .NET microscopy library and application for viewing, editing, and annotating images.
Loading...
Searching...
No Matches
StackTools.cs
Go to the documentation of this file.
1namespace BioCore
2{
3 public partial class StackTools : Form
4 {
5 public StackTools()
6 {
7 InitializeComponent();
9 }
10
15 public void UpdateStacks()
16 {
17 if (stackABox.Items.Count == Images.images.Count)
18 return;
19 stackABox.Items.Clear();
20 stackBBox.Items.Clear();
21 foreach (BioImage b in Images.images)
22 {
23 stackABox.Items.Add(b);
24 stackBBox.Items.Add(b);
25 }
26 }
27 public BioImage ImageA
28 {
29 get { return (BioImage)stackABox.SelectedItem; }
30 }
31 public BioImage ImageB
32 {
33 get { return (BioImage)stackBBox.SelectedItem; }
34 }
42 private void substackBut_Click(object sender, EventArgs e)
43 {
44 if (stackABox.SelectedIndex == -1)
45 return;
46 BioImage b = BioImage.Substack(ImageA, ((BioImage)stackABox.SelectedItem).series, (int)zStartBox.Value, (int)zEndBox.Value, (int)cStartBox.Value, (int)cEndBox.Value, (int)tStartBox.Value, (int)tEndBox.Value);
49 }
50
58 private void stackABox_SelectedIndexChanged(object sender, EventArgs e)
59 {
60 if (stackABox.SelectedIndex == -1)
61 return;
62 if (stackABox.SelectedItem == stackBBox.SelectedItem)
63 {
64 //Same image selected for A & B
65 MessageBox.Show("Same image selected for A & B. Change either A stack or B stack.");
66 stackABox.SelectedIndex = -1;
67 }
68 zEndBox.Maximum = ImageA.SizeZ;
69 cEndBox.Maximum = ImageA.SizeC;
70 tEndBox.Maximum = ImageA.SizeT;
71 zEndBox.Value = ImageA.SizeZ;
72 cEndBox.Value = ImageA.SizeC;
73 tEndBox.Value = ImageA.SizeT;
74 }
75
82 private void stackBBox_SelectedIndexChanged(object sender, EventArgs e)
83 {
84 if (stackABox.SelectedIndex == -1)
85 return;
86 if (stackBBox.SelectedIndex == -1)
87 return;
88 if (stackABox.SelectedItem == stackBBox.SelectedItem)
89 {
90 //Same image selected for A & B
91 MessageBox.Show("Same image selected for A & B. Change either A stack or B stack.");
92 stackBBox.SelectedIndex = -1;
93 }
94 }
95
103 private void mergeBut_Click(object sender, EventArgs e)
104 {
105 if (stackABox.SelectedIndex == -1)
106 return;
107 if (stackBBox.SelectedIndex == -1)
108 return;
109 BioImage b = BioImage.MergeChannels(ImageA, ImageB);
110 TabsView iv = new TabsView(b);
111 iv.Show();
112 UpdateStacks();
113 }
114
123 private void splitChannelsBut_Click(object sender, EventArgs e)
124 {
125 if (stackABox.SelectedIndex == -1)
126 return;
127 BioImage[] bms = ImageA.SplitChannels();
128 for (int i = 0; i < bms.Length; i++)
129 {
130 App.tabsView.AddTab(bms[i]);
131 }
132 UpdateStacks();
133 }
134
139 private void StackTools_Activated(object sender, EventArgs e)
140 {
141 UpdateStacks();
142 }
143
148 private void setMaxToolStripMenuItem_Click(object sender, EventArgs e)
149 {
150 if (ImageA != null)
151 zEndBox.Value = ImageA.SizeZ;
152 }
153
158 private void setMaxCToolStripMenuItem_Click(object sender, EventArgs e)
159 {
160 if (ImageA != null)
161 cEndBox.Value = ImageA.SizeC;
162 }
163
168 private void setMaxTToolStripMenuItem_Click(object sender, EventArgs e)
169 {
170 if (ImageA != null)
171 tEndBox.Value = ImageA.SizeT;
172 }
173
178 private void StackTools_FormClosing(object sender, FormClosingEventArgs e)
179 {
180 e.Cancel = true;
181 this.WindowState = FormWindowState.Minimized;
182 }
183
188 private void mergeZBut_Click(object sender, EventArgs e)
189 {
190 if (ImageA != null)
191 App.tabsView.AddTab(BioImage.MergeZ(ImageA));
192 }
193
198 private void mergeTBut_Click(object sender, EventArgs e)
199 {
200 if (ImageA != null)
201 App.tabsView.AddTab(BioImage.MergeT(ImageA));
202 }
203 }
204}
static TabsView tabsView
Definition App.cs:10
void AddTab(BioImage b)
Definition TabsView.cs:96