4using System.Diagnostics;
5using System.ComponentModel;
10 public static bool init =
false;
12 public static System.Drawing.Graphics
graphics =
null;
13 public List<ImageView>
viewers =
new List<ImageView>();
18 if (tabControl.TabPages.Count == 0)
20 if (tabControl.SelectedIndex == -1)
22 if (tabControl.SelectedTab.Controls.Count == 0)
24 return (
ImageView)tabControl.SelectedTab.Controls[0];
46 InitializeComponent();
55 InitializeComponent();
64 InitializeComponent();
71 for (
int i = 0; i < arg.Length; i++)
73 if (arg[i].EndsWith(
".cs"))
78 if (arg[i].EndsWith(
".ijm"))
85 AddTab(BioImage.OpenFile(arg[i]).Result);
99 throw new ArgumentNullException(nameof(b),
"The image loader returned no image to display.");
100 if (b.filename.Contains(
'/') || b.filename.Contains(
'\\'))
101 b.filename = Path.GetFileName(b.filename);
102 TabPage t =
new TabPage(GetAvailableTabTitle(b.filename));
104 v.Dock = DockStyle.Fill;
106 if (Width < b.SizeX || Height < b.SizeY)
109 Height = b.SizeY + 190;
111 tabControl.TabPages.Add(t);
112 tabControl.Dock = DockStyle.Fill;
113 tabControl.SelectedIndex = tabControl.TabCount - 1;
118 if (WindowState == FormWindowState.Minimized)
119 WindowState = FormWindowState.Normal;
123 private string GetAvailableTabTitle(
string filename)
125 var titles =
new HashSet<string>(tabControl.TabPages.Cast<TabPage>().Select(page => page.Text), StringComparer.OrdinalIgnoreCase);
126 if (!titles.Contains(filename))
130 string extension = filename.EndsWith(
".ome.zarr", StringComparison.OrdinalIgnoreCase) ? filename.Substring(filename.Length - 9)
131 : filename.EndsWith(
".ome.tiff", StringComparison.OrdinalIgnoreCase) ? filename.Substring(filename.Length - 9)
132 : filename.EndsWith(
".ome.tif", StringComparison.OrdinalIgnoreCase) ? filename.Substring(filename.Length - 8)
133 : Path.GetExtension(filename);
134 string stem = filename.Substring(0, filename.Length - extension.Length);
135 for (
int number = 2; ; number++)
137 string title = $
"{stem}-{number}{extension}";
138 if (!titles.Contains(title))
148 for (
int i = 0; i < tabControl.TabPages.Count; i++)
150 var item = tabControl.TabPages[i];
151 string name = System.IO.Path.GetFileName(item.Name);
155 for (
int v = 0; v < iv.
Images.Count; v++)
157 Images.RemoveImage(iv.
Images[v]);
159 tabControl.TabPages.Remove(item);
170 tabControl.SelectTab(tabName);
174 tabControl.SelectedIndex = i;
179 for (
int i = 0; i < tabControl.TabPages.Count; i++)
181 TabPage t = tabControl.TabPages[i];
182 if (t.Text == tabName)
195 InitializeZarrMenu();
198 InitializeCommandMenu();
201 ToolStripMenuItem mi =
new ToolStripMenuItem(s.name);
202 mi.Click += Mi_Click;
203 runToolStripMenuItem1.DropDownItems.Add(mi);
205 foreach (Fiji.Macro.Command c in Fiji.Macros)
207 ToolStripMenuItem mi =
new ToolStripMenuItem(c.Name);
208 mi.Click += Mi_Click;
209 runToolStripMenuItem1.DropDownItems.Add(mi);
213 private void Mi_Click(
object? sender, EventArgs e)
215 ToolStripMenuItem m = (ToolStripMenuItem)sender;
216 if (m.Text.EndsWith(
".ijm") || m.Text.EndsWith(
".txt") && !m.Text.EndsWith(
".cs"))
218 string ma = File.ReadAllText(m.Text);
230 for (
int v = 0; v <
viewers.Count; v++)
232 for (
int i = 0; i <
viewers.Count; i++)
234 if (
viewers[v].Images[i].Filename == name)
252 private async
void MenuItem_Click(
object? sender, EventArgs e)
254 BioImage source =
Image;
255 if (source ==
null)
return;
256 ToolStripMenuItem m = (ToolStripMenuItem)sender;
257 string command = m.Tag as
string ?? m.Text;
258 string escaped = command.Replace(
"\\",
"\\\\").Replace(
"\"",
"\\\"");
264 MessageBox.Show(
this, $
"'{command}' did not return an image. It may have produced another type of result or failed in Fiji.",
265 "Fiji Command", MessageBoxButtons.OK, MessageBoxIcon.Information);
268 if (ReferenceEquals(result, source))
270 ImageView? sourceViewer =
viewers.FirstOrDefault(viewer => viewer.Images.Contains(source));
271 if (sourceViewer !=
null && !sourceViewer.IsDisposed)
273 TabPage? sourceTab = tabControl.TabPages.Cast<TabPage>()
274 .FirstOrDefault(page => page.Controls.Contains(sourceViewer));
275 if (sourceTab !=
null)
276 tabControl.SelectedTab = sourceTab;
277 App.viewer = sourceViewer;
278 sourceViewer.SelectedIndex = sourceViewer.
Images.IndexOf(source);
287 Trace.WriteLine(ex.ToString());
288 MessageBox.Show(
this, $
"Could not run '{command}':\n\n{ex}",
"Fiji Command", MessageBoxButtons.OK, MessageBoxIcon.Error);
291 ToolStripMenuItem mi =
new ToolStripMenuItem(m.Text);
293 mi.Click += MenuItem_Click;
295 foreach (ToolStripMenuItem item
in recentToolStripMenuItem.DropDownItems)
297 if ((item.Tag as
string ?? item.Text) == command)
301 recentToolStripMenuItem.DropDownItems.Add(mi);
311 System.Drawing.Size s;
316 if (s.Width > Screen.PrimaryScreen.Bounds.Width || s.Height > Screen.PrimaryScreen.Bounds.Height)
318 this.WindowState = FormWindowState.Maximized;
329 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
360 return tabControl.TabPages.Count;
370 Process p =
new Process();
372 p.StartInfo.Arguments = file;
384 private async
void openToolStripMenuItem_Click(
object sender, EventArgs e)
386 if (openFilesDialog.ShowDialog() != DialogResult.OK)
388 foreach (
string item
in openFilesDialog.FileNames)
392 BioImage im = await BioImage.OpenFile(item);
394 throw new InvalidOperationException(
"The image loader returned no image.");
401 MessageBox.Show(
this, $
"Could not open '{item}'.\n{ex.Message}",
402 "Open Image", MessageBoxButtons.OK, MessageBoxIcon.Error);
405 openRecentToolStripMenuItem.DropDownItems.Clear();
408 openRecentToolStripMenuItem.DropDownItems.Add(item,
null, ItemClicked);
413 private void SaveProperties()
416 for (
int i = 0; i <
App.
recent.Count; i++)
420 Properties.Settings.Default[
"Recent"] = s;
421 Properties.Settings.Default.Save();
425 private void LoadProperties()
428 string s = (string)Properties.Settings.Default[
"Recent"];
429 string[] sts = s.Split(
'$');
430 foreach (
string item
in sts)
441 private void closeToolStripMenuItem_Click(
object sender, EventArgs e)
455 private void saveToolStripMenuItem_Click(
object sender, EventArgs e)
459 saveTiffFileDialog.FileName = Path.GetFileNameWithoutExtension(
Image.Filename);
460 if (saveTiffFileDialog.ShowDialog() != DialogResult.OK)
462 string[] sts =
new string[1];
464 BioImage.SaveSeries(sts, saveTiffFileDialog.FileName);
472 private void ImageViewer_PreviewKeyDown(
object sender, PreviewKeyDownEventArgs e)
474 if (e.KeyCode ==
Keys.S && e.Control)
476 saveToolStripMenuItem.PerformClick();
479 if (e.KeyCode ==
Keys.O && e.Control)
481 openToolStripMenuItem.PerformClick();
489 private void toolboxToolStripMenuItem_Click(
object sender, EventArgs e)
502 private void exportCSVToolStripMenuItem_Click(
object sender, EventArgs e)
504 if (saveCSVFileDialog.ShowDialog() != DialogResult.OK)
516 private void importCSVToolStripMenuItem_Click(
object sender, EventArgs e)
518 if (openCSVFileDialog.ShowDialog() != DialogResult.OK)
529 private void exportROIsOfFolderOfImagesToolStripMenuItem_Click(
object sender, EventArgs e)
531 if (folderBrowserDialog.ShowDialog() != DialogResult.OK)
533 saveOMEFileDialog.InitialDirectory = folderBrowserDialog.SelectedPath;
534 if (saveCSVFileDialog.ShowDialog() != DialogResult.OK)
536 string f = Path.GetFileName(saveCSVFileDialog.FileName);
538 BioImage.ExportROIFolder(folderBrowserDialog.SelectedPath, f);
545 private void rOIManagerToolStripMenuItem_Click(
object sender, EventArgs e)
554 private void ImageViewer_Activated(
object sender, EventArgs e)
567 private void channelsToolToolStripMenuItem_Click(
object sender, EventArgs e)
583 private void rGBToolStripMenuItem_Click(
object sender, EventArgs e)
588 filteredToolStripMenuItem.Checked =
false;
589 rawToolStripMenuItem.Checked =
false;
590 emissionToolStripMenuItem.Checked =
false;
600 private void filteredToolStripMenuItem_Click(
object sender, EventArgs e)
605 rGBToolStripMenuItem.Checked =
false;
606 rawToolStripMenuItem.Checked =
false;
607 emissionToolStripMenuItem.Checked =
false;
617 private void rawToolStripMenuItem_Click(
object sender, EventArgs e)
622 rGBToolStripMenuItem.Checked =
false;
623 filteredToolStripMenuItem.Checked =
false;
624 emissionToolStripMenuItem.Checked =
false;
635 private void autoThresholdToolStripMenuItem_Click(
object sender, EventArgs e)
653 rGBToolStripMenuItem.Checked =
true;
655 filteredToolStripMenuItem.Checked =
true;
657 rawToolStripMenuItem.Checked =
true;
664 private void scriptRunnerToolStripMenuItem_Click(
object sender, EventArgs e)
666 App.runner.WindowState = FormWindowState.Normal;
674 private void stackToolsToolStripMenuItem_Click(
object sender, EventArgs e)
683 private void scriptRecorderToolStripMenuItem_Click(
object sender, EventArgs e)
685 Recorder.recorder.WindowState = FormWindowState.Normal;
695 private void saveOMEToolStripMenuItem_Click(
object sender, EventArgs e)
700 if (saveOMEFileDialog.ShowDialog() != DialogResult.OK)
702 foreach (
string file
in saveOMEFileDialog.FileNames)
704 BioImage.SaveOME(file,
Image.ID);
708 private void copyToClipboardToolStripMenuItem_Click(
object sender, EventArgs e)
717 private void setToolToolStripMenuItem_Click(
object sender, EventArgs e)
727 private void timer_Tick(
object sender, EventArgs e)
738 private void filtersToolStripMenuItem_Click(
object sender, EventArgs e)
749 private void bit8ToolStripMenuItem_Click(
object sender, EventArgs e)
761 private void bit16ToolStripMenuItem_Click(
object sender, EventArgs e)
772 private void to24BitToolStripMenuItem_Click(
object sender, EventArgs e)
784 private void to48BitToolStripMenuItem_Click(
object sender, EventArgs e)
796 private void to32BitToolStripMenuItem_Click(
object sender, EventArgs e)
810 private void toWindowToolStripMenuItem_Click(
object sender, EventArgs e)
812 if (tabControl.SelectedIndex == -1)
825 private void tabControl_SelectedIndexChanged(
object sender, EventArgs e)
827 if (tabControl.SelectedIndex == -1)
831 rawToolStripMenuItem.Checked =
true;
833 rawToolStripMenuItem.Checked =
false;
835 filteredToolStripMenuItem.Checked =
true;
837 filteredToolStripMenuItem.Checked =
false;
839 rGBToolStripMenuItem.Checked =
true;
841 rGBToolStripMenuItem.Checked =
false;
844 ImageView.SelectedIndex = 0;
854 private void closeToolStripMenuItem_Click_1(
object sender, EventArgs e)
856 if (tabControl.SelectedIndex == -1)
859 tabControl.TabPages.RemoveAt(tabControl.SelectedIndex);
861 foreach (BioImage item
in v.Images)
863 Images.RemoveImage(item);
873 private void openOMEToolStripMenuItem_Click(
object sender, EventArgs e)
875 if (openFilesDialog.ShowDialog() != DialogResult.OK)
877 int img = Images.images.Count;
878 foreach (
string item
in openFilesDialog.FileNames)
880 BioImage im = BioImage.OpenOME(item,
true);
887 openRecentToolStripMenuItem.DropDownItems.Add(item,
null, ItemClicked);
895 private void saveAllToolStripMenuItem_Click(
object sender, EventArgs e)
897 List<string> sts =
new List<string>();
898 foreach (BioImage item
in Images.images)
908 private void aboutToolStripMenuItem_Click(
object sender, EventArgs e)
918 private void scriptRunnerToolStripMenuItem_Click_1(
object sender, EventArgs e)
927 private void scriptRecorderToolStripMenuItem_Click_1(
object sender, EventArgs e)
938 private void openOMEToolStripMenuItem_Click_1(
object sender, EventArgs e)
940 if (openFilesDialog.ShowDialog() != DialogResult.OK)
942 foreach (
string sts
in openFilesDialog.FileNames)
944 BioImage im = BioImage.OpenOME(sts,
true);
955 private void newTabViewToolStripMenuItem_Click(
object sender, EventArgs e)
964 private void nodeViewToolStripMenuItem_Click(
object sender, EventArgs e)
967 App.nodeView.ShowInTaskbar =
true;
975 private void saveToolStripMenuItem1_Click(
object sender, EventArgs e)
977 if (saveTiffFileDialog.ShowDialog() == DialogResult.OK)
986 private void saveOMEToolStripMenuItem1_Click(
object sender, EventArgs e)
988 if (saveOMEFileDialog.ShowDialog() == DialogResult.OK)
995 private void openRecentToolStripMenuItem_DropDownOpening(
object sender, EventArgs e)
997 openRecentToolStripMenuItem.DropDownItems.Clear();
1000 openRecentToolStripMenuItem.DropDownItems.Add(item,
null, ItemClicked);
1009 private async
void ItemClicked(
object sender, EventArgs e)
1011 ToolStripMenuItem ts = (ToolStripMenuItem)sender;
1012 if (IsZarrSource(ts.Text))
1014 await OpenZarrSourceAsync(ts.Text);
1017 if (!BioImage.isOME(ts.Text))
1019 BioImage[] bs = BioImage.OpenSeries(ts.Text,
false);
1020 for (
int i = 0; i < bs.Length; i++)
1031 bool separateTabs = tb.ShowDialog() == DialogResult.Yes;
1032 bool firstImage =
true;
1033 await
foreach (BioImage image
in ImageSeriesLoader.OpenAsync(ts.Text))
1035 if (separateTabs || firstImage)
1051 private void TabsView_KeyDown(
object sender, KeyEventArgs e)
1064 private void duplicateToolStripMenuItem_Click(
object sender, EventArgs e)
1066 BioImage im =
Image.Copy();
1074 private void saveSeriesToolStripMenuItem_Click(
object sender, EventArgs e)
1083 private void TabsView_FormClosing(
object sender, FormClosingEventArgs e)
1096 private void addImagesToTabToolStripMenuItem_Click(
object sender, EventArgs e)
1098 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1100 for (
int i = 0; i < openFilesDialog.FileNames.Length; i++)
1102 if (i == 0 && tabControl.TabPages.Count == 0)
1104 BioImage[] bms = BioImage.OpenOMESeries(openFilesDialog.FileNames[0],
true,
true);
1106 for (
int a = 1; a < bms.Length; a++)
1115 BioImage[] bms = BioImage.OpenOMESeries(openFilesDialog.FileNames[0],
false,
true);
1116 for (
int a = 0; a < bms.Length; a++)
1133 private void addImagesOMEToolStripMenuItem_Click(
object sender, EventArgs e)
1135 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1137 for (
int i = 0; i < openFilesDialog.FileNames.Length; i++)
1139 if (i == 0 && tabControl.TabPages.Count == 0)
1141 AddTab(BioImage.OpenOME(openFilesDialog.FileNames[0],
false));
1155 private async
void openSeriesToolStripMenuItem_Click(
object sender, EventArgs e)
1157 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1159 foreach (var file
in openFilesDialog.FileNames)
1161 await
foreach (BioImage image
in ImageSeriesLoader.OpenAsync(file))
1175 private void saveTabToolStripMenuItem_Click(
object sender, EventArgs e)
1177 if (saveOMEFileDialog.ShowDialog() != DialogResult.OK)
1179 bool convert =
false;
1192 mes =
"Saving Series as OME only supports 8 bit & 16 bit images. Convert 16 bit?";
1194 mes =
"Saving Series as OME only supports 8 bit & 16 bit images. Convert 8 bit?";
1195 if (MessageBox.Show(
this, mes,
"Convert to supported format?", MessageBoxButtons.OKCancel) == DialogResult.OK)
1199 if (b.bitsPerPixel > 8)
1210 for (
int i = 0; i < sts.Length; i++)
1214 BioImage.SaveOMESeries(sts, saveOMEFileDialog.FileName, Properties.Settings.Default.Planes);
1223 private void saveTabTiffToolStripMenuItem_Click(
object sender, EventArgs e)
1225 if (saveTiffFileDialog.ShowDialog() != DialogResult.OK)
1228 for (
int i = 0; i < sts.Length; i++)
1232 BioImage.SaveSeries(sts, saveTiffFileDialog.FileName);
1241 private void openSeriesToolStripMenuItem_Click_1(
object sender, EventArgs e)
1243 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1245 BioImage[] bms =
null;
1246 foreach (
string item
in openFilesDialog.FileNames)
1248 bms = BioImage.OpenSeries(item,
false);
1249 for (
int i = 0; i < bms.Length; i++)
1266 private void TabsView_Load(
object sender, EventArgs e)
1278 private void clearRecentToolStripMenuItem_Click(
object sender, EventArgs e)
1280 Properties.Settings.Default.Recent =
"";
1281 Properties.Settings.Default.Save();
1282 openRecentToolStripMenuItem.DropDownItems.Clear();
1293 private void rotateToolStripMenuItem_DropDownItemClicked(
object sender, ToolStripItemClickedEventArgs e)
1297 string st = e.ClickedItem.Text;
1298 AForge.RotateFlipType rot = (AForge.RotateFlipType)Enum.Parse(typeof(AForge.RotateFlipType), st);
1310 private void rotateToolStripMenuItem_DropDownOpening(
object sender, EventArgs e)
1312 if (rotateToolStripMenuItem.DropDownItems.Count > 0)
1314 string[] sts = Enum.GetNames(typeof(AForge.RotateFlipType));
1315 foreach (
string item
in sts)
1317 rotateToolStripMenuItem.DropDownItems.Add(item);
1328 private void emissionToolStripMenuItem_Click(
object sender, EventArgs e)
1333 rGBToolStripMenuItem.Checked =
false;
1334 rawToolStripMenuItem.Checked =
false;
1335 filteredToolStripMenuItem.Checked =
false;
1336 emissionToolStripMenuItem.Checked =
true;
1344 private void consoleToolStripMenuItem_Click(
object sender, EventArgs e)
1354 private void switchRedBlueToolStripMenuItem_Click(
object sender, EventArgs e)
1366 private void createFunctionToolStripMenuItem_Click(
object sender, EventArgs e)
1376 private void DropDownItemClicked(
object sender, EventArgs e)
1378 ToolStripMenuItem ts = (ToolStripMenuItem)sender;
1386 private void runToolStripMenuItem_DropDownOpening(
object sender, EventArgs e)
1388 runToolStripMenuItem.DropDownItems.Clear();
1391 runToolStripMenuItem.DropDownItems.Add(item.Value.Name,
null, DropDownItemClicked);
1399 private void reloadToolStripMenuItem_Click(
object sender, EventArgs e)
1408 private void xMLToolStripMenuItem_Click(
object sender, EventArgs e)
1422 private void imagesToStackToolStripMenuItem_Click(
object sender, EventArgs e)
1424 OpenFileDialog fd =
new OpenFileDialog();
1425 fd.Title =
"Images to Stack";
1426 fd.Multiselect =
true;
1427 if (fd.ShowDialog() != DialogResult.OK)
1429 BioImage b = BioImage.ImagesToStack(fd.FileNames,
true);
1439 private void importImageJROIToolStripMenuItem_Click(
object sender, EventArgs e)
1441 if (openImageJDialog.ShowDialog() != DialogResult.OK)
1443 foreach (
string item
in openImageJDialog.FileNames)
1456 private void exportImageJROIToolStripMenuItem_Click(
object sender, EventArgs e)
1458 saveImageJDialog.Title =
"Set Filename for exported ROI's.";
1460 if (saveImageJDialog.ShowDialog() != DialogResult.OK)
1465 string s = Path.GetDirectoryName(saveImageJDialog.FileName) +
"//" + Path.GetFileNameWithoutExtension(saveImageJDialog.FileName) +
"-" + i +
".roi";
1472 private void autoFocusToolStripMenuItem_Click(
object sender, EventArgs e)
1481 private void savePyramidalToolStripMenuItem_Click(
object sender, EventArgs e)
1483 saveOMEFileDialog.Title =
"Save Pyramidal";
1484 if (saveOMEFileDialog.ShowDialog() != DialogResult.OK)
1486 BioImage.SaveOMEPyramidal(
App.
viewer.
Images.ToArray(), saveOMEFileDialog.FileName, NetVips.Enums.ForeignTiffCompression.Lzw, 0);
1489 private void TabsView_KeyPress(
object sender, KeyPressEventArgs e)
1491 if (
Viewer ==
null)
return;
1495 private void TabsView_KeyUp(
object sender, KeyEventArgs e)
1497 if (
Viewer ==
null)
return;
1501 private void importQuPathROIToolStripMenuItem_Click(
object sender, EventArgs e)
1503 if (openQuPathDialog.ShowDialog() != DialogResult.OK)
1505 foreach (
string item
in openQuPathDialog.FileNames)
1508 foreach (ROI r
in rois)
1515 private void exportQuPathROIToolStripMenuItem_Click(
object sender, EventArgs e)
1517 if (saveQuPathDialog.ShowDialog() != DialogResult.OK)
1519 foreach (
string item
in saveQuPathDialog.FileNames)
1525 private void extractRegionPyramidalToolStripMenuItem_Click(
object sender, EventArgs e)
1528 bm.ID = Images.GetImageName(bm.ID);
1529 Images.AddImage(bm);
1532 private void openQuPathProjectToolStripMenuItem_Click(
object sender, EventArgs e)
1534 if (openQuPathProjDialog.ShowDialog() != DialogResult.OK)
1536 QuPath.Project pr = QuPath.OpenProject(openQuPathProjDialog.FileName);
1537 foreach (QuPath.Image p in pr.Images)
1539 string s = p.ServerBuilder.Uri.Replace(
"file:/",
"");
1544 private void saveQuPathProjectToolStripMenuItem_Click(
object sender, EventArgs e)
1546 if (saveNumPyDialog.ShowDialog() != DialogResult.OK)
1548 List<BioImage> bms =
new List<BioImage>();
1551 foreach (var item
in v.Images)
1556 QuPath.Project.SaveProject(saveNumPyDialog.FileName,
new List<BioImage[]> { bms.ToArray() });
1559 private void renameToolStripMenuItem_Click(
object sender, EventArgs e)
1562 if (ti.ShowDialog() != DialogResult.OK)
1567 private void saveNumPyToolStripMenuItem_Click(
object sender, EventArgs e)
1569 if (saveNumPyDialog.ShowDialog() != DialogResult.OK)
1574 private void oMEROToolStripMenuItem_Click(
object sender, EventArgs e)
System.Drawing.Image Image
System.Windows.Forms.Keys Keys
System.Windows.Forms.Application Application
static ChannelsTool channelsTool
static List< Channel > Channels
static StackTools stackTools
static ROIManager manager
static BioConsole console
static List< string > recent
static bool useBioformats
static Dictionary< string, Function > Functions
ImageView control for image stacks, pyramidal and whole-slide-images.
void ImageView_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
void ImageView_KeyUp(object sender, KeyEventArgs e)
void AddImage(BioImage im)
static BioImage SelectedImage
void SetCoordinate(int z, int c, int t)
int Level
Current level when viewing whole-slide and pyramidal images.
void ImageView_KeyDown(object sender, KeyEventArgs e)
ViewMode Mode
Setting the view mode of the application. */.
async void UpdateImages(bool updatePyramidal=true)
int SelectedIndex
A property that is used to set the selected index of the image. */.
void Exit()
It closes the current form, exits the application, and exits the thread.
static Dictionary< string, Script > Scripts
void RunScriptFile(string file)
static void RunByName(string name)
void SetTab(string tabName)
static System.Drawing.Graphics graphics
ImageView? GetViewer(string name)
void RemoveTab(string tabName)
void AddViewer(ImageView v)
void RemoveViewer(ImageView v)
void UpdateViewMode(ImageView.ViewMode v)
static BioImage SelectedImage
ImageView GetViewer(int i)
List< ImageView > viewers
void OpenInNewProcess(string file)
void RenameTab(string tabName, string text)
static ImageView SelectedViewer