7using System.Collections.Generic;
8using System.Diagnostics;
11using System.Threading;
12using System.Windows.Forms;
14using ZarrNET.Core.Helpers;
17using ZCT = AForge.ZCT;
22 public static bool init =
false;
25 public static System.Drawing.Graphics
graphics =
null;
31 if (tabControl.TabPages.Count == 0)
33 if (tabControl.SelectedIndex == -1)
35 if (tabControl.SelectedTab.Controls.Count == 0)
37 return (
ImageView)tabControl.SelectedTab.Controls[0];
40 private List<ImageView> viewers =
new List<ImageView>();
47 for (
int v = 0; v < viewers.Count; v++)
49 for (
int i = 0; i < viewers.Count; i++)
51 if (viewers[v].Images[i].Filename == name)
85 InitializeComponent();
92 InitializeComponent();
101 InitializeComponent();
109 for (
int i = 0; i < arg.Length; i++)
111 if (arg[i].EndsWith(
".cs"))
116 if (arg[i].EndsWith(
".ijm"))
140 if (tabControl.IsHandleCreated)
141 tabControl.Invoke((MethodInvoker)delegate
146 AddAssociatedImageTabs(b);
152 foreach (
ImageView t
in tabControl.TabPages)
154 if (t.Name == b.filename)
156 Images.RemoveImage(b);
164 foreach (TabPage item
in tabControl.TabPages)
166 if (item.Text == name)
177 foreach (TabPage tabPage
in tabControl.TabPages)
179 if (tabPage.Controls.Count == 0 || tabPage.Controls[0] is not
ImageView view)
181 foreach (
BioImage tabImage
in view.Images)
183 if (tabImage ==
null)
185 if (ReferenceEquals(tabImage, image))
187 if (!
string.IsNullOrEmpty(tabImage.ID) && !
string.IsNullOrEmpty(image.ID) && tabImage.ID == image.ID)
189 if (!
string.IsNullOrEmpty(tabImage.Filename) && !
string.IsNullOrEmpty(image.Filename) && tabImage.Filename == image.Filename)
199 if (b.filename.Contains(
"/") || b.filename.Contains(
"\\"))
200 b.filename = Path.GetFileName(b.filename);
201 TabPage t =
new TabPage(b.filename);
204 v.Dock = DockStyle.Fill;
206 tabControl.TabPages.Add(t);
207 tabControl.SelectedIndex = tabControl.TabCount - 1;
210 private static BioImage CreateAssociatedImageTab(
BioImage source,
string name, AssociatedImage image)
212 if (source ==
null || image ==
null)
215 string baseName = Path.GetFileNameWithoutExtension(source.Filename);
216 if (
string.IsNullOrEmpty(baseName))
217 baseName = Path.GetFileNameWithoutExtension(source.ID);
218 if (
string.IsNullOrEmpty(baseName))
219 baseName =
"associated";
221 string suffix = name.Trim();
222 if (
string.IsNullOrEmpty(suffix))
223 suffix =
"associated";
226 bi.Filename = $
"{baseName}-{suffix}.png";
227 bi.file = source.file;
228 bi.Resolutions.Add(
new Resolution(
229 (
int)image.Dimensions.Width,
230 (
int)image.Dimensions.Height,
231 AForge.PixelFormat.Format32bppArgb,
238 bi.Buffers.Add(
new AForge.Bitmap(
240 (
int)image.Dimensions.Width,
241 (
int)image.Dimensions.Height,
242 AForge.PixelFormat.Format32bppArgb,
249 bi.Channels.Add(
new Channel(0, 8, 4));
250 bi.UpdateCoords(1, 1, 1);
251 bi.Volume =
new VolumeD(
new Point3D(0, 0, 0),
new Point3D(
252 bi.PhysicalSizeX * bi.SizeX,
253 bi.PhysicalSizeY * bi.SizeY,
254 bi.PhysicalSizeZ * bi.SizeZ));
255 bi.Coordinate =
new ZCT(0, 0, 0);
258 private void AddAssociatedImageTabs(
BioImage source)
260 if (source?.OpenSlideBase?.SlideImage ==
null)
263 foreach (var entry
in source.OpenSlideBase.SlideImage.GetAssociatedImages())
265 string name = entry.Key ??
string.Empty;
266 if (!name.Contains(
"label", StringComparison.OrdinalIgnoreCase) &&
267 !name.Contains(
"macro", StringComparison.OrdinalIgnoreCase))
272 BioImage associated = CreateAssociatedImageTab(source, name, entry.Value);
273 if (associated !=
null && !
HasTab(associated))
274 AddTabCore(associated);
279 TabPage t =
new TabPage(
"Viewer");
282 v.Dock = DockStyle.Fill;
284 tabControl.TabPages.Add(t);
288 string a =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
289 foreach (
char c
in a)
291 ToolStripMenuItem me =
new ToolStripMenuItem(c.ToString());
294 if (command.Name.StartsWith(c))
296 ToolStripMenuItem menuItem =
new ToolStripMenuItem(command.Name.ToString());
297 menuItem.Click += MenuItem_Click;
298 me.DropDownItems.Add(menuItem);
301 commandToolStripMenuItem.DropDownItems.Add(me);
305 ToolStripMenuItem mi =
new ToolStripMenuItem(s.name);
306 mi.Click += Mi_Click;
307 runToolStripMenuItem.DropDownItems.Add(mi);
311 ToolStripMenuItem mi =
new ToolStripMenuItem(c.Name);
312 mi.Click += Mi_Click;
313 runToolStripMenuItem.DropDownItems.Add(mi);
319 private void Mi_Click(
object? sender, EventArgs e)
321 ToolStripMenuItem m = (ToolStripMenuItem)sender;
322 if (m.Text.EndsWith(
".ijm") || m.Text.EndsWith(
".txt") && !m.Text.EndsWith(
".cs"))
324 string ma = File.ReadAllText(m.Text);
331 private void MenuItem_Click(
object? sender, EventArgs e)
334 ToolStripMenuItem m = (ToolStripMenuItem)sender;
336 ToolStripMenuItem mi =
new ToolStripMenuItem(m.Text);
337 mi.Click += MenuItem_Click;
339 foreach (ToolStripMenuItem item
in recentToolStripMenuItem.DropDownItems)
341 if (item.Text == m.Text)
345 recentToolStripMenuItem.DropDownItems.Add(mi);
356 System.Drawing.Size s;
361 if (s.Width > Screen.PrimaryScreen.Bounds.Width || s.Height > Screen.PrimaryScreen.Bounds.Height)
363 this.WindowState = FormWindowState.Maximized;
391 return tabControl.TabPages.Count;
401 Process p =
new Process();
403 p.StartInfo.Arguments = file;
415 private async
void openToolStripMenuItem_Click(
object sender, EventArgs e)
417 if (openFilesDialog.ShowDialog() != DialogResult.OK)
419 foreach (
string item
in openFilesDialog.FileNames)
421 StartProgress(
"Opening selected image.",
"Opening");
427 if (!Images.images.Contains(im))
428 Images.images.Add(im);
434 openRecentToolStripMenuItem.DropDownItems.Add(item,
null, ItemClicked);
439 private void SaveProperties()
442 for (
int i = 0; i <
App.
recent.Count; i++)
446 Properties.Settings.Default[
"Recent"] = s;
447 Properties.Settings.Default.Save();
451 private void LoadProperties()
454 string s = (string)Properties.Settings.Default[
"Recent"];
455 string[] sts = s.Split(
'$');
456 foreach (
string item
in sts)
463 private static bool done =
false;
465 private static string title;
466 private static void ProgressUpdate()
470 progress.Text = title;
472 progress.ProgressValue =
BioImage.Progress;
476 private static void StartProgress(
string titl,
string status)
480 BioImage.Progress = 0;
481 progress.Status = status;
482 progress.Text = title;
484 progress.Status = status;
487 progress.ProgressValue =
BioImage.Progress;
490 Thread th =
new Thread(ProgressUpdate);
493 private static void StopProgress()
503 private void closeToolStripMenuItem_Click(
object sender, EventArgs e)
517 private void saveToolStripMenuItem_Click(
object sender, EventArgs e)
521 saveTiffFileDialog.FileName = Path.GetFileNameWithoutExtension(
Image.Filename);
522 if (saveTiffFileDialog.ShowDialog() != DialogResult.OK)
524 string[] sts =
new string[1];
526 StartProgress(
"Saving selected Tiff.",
"Saving");
527 BioImage.SaveSeries(sts, saveTiffFileDialog.FileName);
536 private void ImageViewer_PreviewKeyDown(
object sender, PreviewKeyDownEventArgs e)
538 if (e.KeyCode ==
Keys.S && e.Control)
540 saveToolStripMenuItem.PerformClick();
543 if (e.KeyCode ==
Keys.O && e.Control)
545 openToolStripMenuItem.PerformClick();
553 private void toolboxToolStripMenuItem_Click(
object sender, EventArgs e)
565 private void exportCSVToolStripMenuItem_Click(
object sender, EventArgs e)
567 if (saveCSVFileDialog.ShowDialog() != DialogResult.OK)
579 private void importCSVToolStripMenuItem_Click(
object sender, EventArgs e)
581 if (openCSVFileDialog.ShowDialog() != DialogResult.OK)
592 private void exportROIsOfFolderOfImagesToolStripMenuItem_Click(
object sender, EventArgs e)
594 if (folderBrowserDialog.ShowDialog() != DialogResult.OK)
596 saveOMEFileDialog.InitialDirectory = folderBrowserDialog.SelectedPath;
597 if (saveCSVFileDialog.ShowDialog() != DialogResult.OK)
599 string f = Path.GetFileName(saveCSVFileDialog.FileName);
601 BioImage.ExportROIFolder(folderBrowserDialog.SelectedPath, f);
608 private void rOIManagerToolStripMenuItem_Click(
object sender, EventArgs e)
617 private void ImageViewer_Activated(
object sender, EventArgs e)
630 private void channelsToolToolStripMenuItem_Click(
object sender, EventArgs e)
646 private void rGBToolStripMenuItem_Click(
object sender, EventArgs e)
651 filteredToolStripMenuItem.Checked =
false;
652 rawToolStripMenuItem.Checked =
false;
653 emissionToolStripMenuItem.Checked =
false;
664 private void filteredToolStripMenuItem_Click(
object sender, EventArgs e)
669 rGBToolStripMenuItem.Checked =
false;
670 rawToolStripMenuItem.Checked =
false;
671 emissionToolStripMenuItem.Checked =
false;
682 private void rawToolStripMenuItem_Click(
object sender, EventArgs e)
687 rGBToolStripMenuItem.Checked =
false;
688 filteredToolStripMenuItem.Checked =
false;
689 emissionToolStripMenuItem.Checked =
false;
700 private void autoThresholdToolStripMenuItem_Click(
object sender, EventArgs e)
718 rGBToolStripMenuItem.Checked =
true;
720 filteredToolStripMenuItem.Checked =
true;
722 rawToolStripMenuItem.Checked =
true;
729 private void scriptRunnerToolStripMenuItem_Click(
object sender, EventArgs e)
731 App.runner.WindowState = FormWindowState.Normal;
739 private void stackToolsToolStripMenuItem_Click(
object sender, EventArgs e)
748 private void scriptRecorderToolStripMenuItem_Click(
object sender, EventArgs e)
750 Recorder.recorder.WindowState = FormWindowState.Normal;
760 private void saveOMEToolStripMenuItem_Click(
object sender, EventArgs e)
765 if (saveOMEFileDialog.ShowDialog() != DialogResult.OK)
767 foreach (
string file
in saveOMEFileDialog.FileNames)
769 StartProgress(
"Saving selected OME.",
"Saving OME");
775 private void copyToClipboardToolStripMenuItem_Click(
object sender, EventArgs e)
784 private void setToolToolStripMenuItem_Click(
object sender, EventArgs e)
790 private void timer_Tick(
object sender, EventArgs e)
796 private void filtersToolStripMenuItem_Click_1(
object sender, EventArgs e)
804 private void to8BitToolStripMenuItem_Click(
object sender, EventArgs e)
814 private void to16BitToolStripMenuItem_Click(
object sender, EventArgs e)
823 private void filtersToolStripMenuItem_Click(
object sender, EventArgs e)
834 private void bit8ToolStripMenuItem_Click(
object sender, EventArgs e)
846 private void bit16ToolStripMenuItem_Click(
object sender, EventArgs e)
857 private void to24BitToolStripMenuItem_Click(
object sender, EventArgs e)
869 private void to48BitToolStripMenuItem_Click(
object sender, EventArgs e)
881 private void to32BitToolStripMenuItem_Click(
object sender, EventArgs e)
895 private void toWindowToolStripMenuItem_Click(
object sender, EventArgs e)
897 if (tabControl.SelectedIndex == -1)
910 private void tabControl_SelectedIndexChanged(
object sender, EventArgs e)
912 if (tabControl.SelectedIndex == -1)
916 rawToolStripMenuItem.Checked =
true;
918 rawToolStripMenuItem.Checked =
false;
920 filteredToolStripMenuItem.Checked =
true;
922 filteredToolStripMenuItem.Checked =
false;
924 rGBToolStripMenuItem.Checked =
true;
926 rGBToolStripMenuItem.Checked =
false;
929 Viewer.SelectedIndex = 0;
939 private void closeToolStripMenuItem_Click_1(
object sender, EventArgs e)
941 if (tabControl.SelectedIndex == -1)
944 tabControl.TabPages.RemoveAt(tabControl.SelectedIndex);
948 Images.RemoveImage(item);
958 private void saveAllToolStripMenuItem_Click(
object sender, EventArgs e)
961 List<string> sts =
new List<string>();
962 foreach (
BioImage item
in Images.images)
964 StartProgress(
"Save Selected Tiff",
"Saving");
974 private void aboutToolStripMenuItem_Click(
object sender, EventArgs e)
984 private void scriptRunnerToolStripMenuItem_Click_1(
object sender, EventArgs e)
993 private void scriptRecorderToolStripMenuItem_Click_1(
object sender, EventArgs e)
1004 private void openOMEToolStripMenuItem_Click_1(
object sender, EventArgs e)
1006 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1008 foreach (
string item
in openFilesDialog.FileNames)
1010 StartProgress(
"Opening selected OME",
"Opening OME");
1015 if (!Images.images.Contains(im))
1016 Images.images.Add(im);
1022 openRecentToolStripMenuItem.DropDownItems.Add(item,
null, ItemClicked);
1030 private void newTabViewToolStripMenuItem_Click(
object sender, EventArgs e)
1039 private void nodeViewToolStripMenuItem_Click(
object sender, EventArgs e)
1042 App.nodeView.ShowInTaskbar =
true;
1050 private void saveToolStripMenuItem1_Click(
object sender, EventArgs e)
1052 if (saveTiffFileDialog.ShowDialog() == DialogResult.OK)
1054 StartProgress(
"Saving selected Tiff",
"Saving");
1065 private void saveOMEToolStripMenuItem1_Click(
object sender, EventArgs e)
1067 if (saveOMEFileDialog.ShowDialog() == DialogResult.OK)
1074 private void openRecentToolStripMenuItem_DropDownOpening(
object sender, EventArgs e)
1076 openRecentToolStripMenuItem.DropDownItems.Clear();
1079 openRecentToolStripMenuItem.DropDownItems.Add(item,
null, ItemClicked);
1088 private void ItemClicked(
object sender, EventArgs e)
1090 ToolStripMenuItem ts = (ToolStripMenuItem)sender;
1094 for (
int i = 0; i < bs.Length; i++)
1116 private void TabsView_KeyDown(
object sender, KeyEventArgs e)
1121 if (e.KeyCode ==
Keys.C && e.Control)
1126 if (e.KeyCode ==
Keys.V && e.Control)
1131 if (e.KeyCode ==
Keys.Subtract || e.KeyCode ==
Keys.NumPad7)
1135 if (e.KeyCode ==
Keys.Add || e.KeyCode ==
Keys.NumPad9)
1139 if (e.KeyCode ==
Keys.W || e.KeyCode ==
Keys.NumPad8)
1143 if (e.KeyCode ==
Keys.S || e.KeyCode ==
Keys.NumPad2)
1147 if (e.KeyCode ==
Keys.A || e.KeyCode ==
Keys.NumPad4)
1151 if (e.KeyCode ==
Keys.D || e.KeyCode ==
Keys.NumPad6)
1155 if (e.KeyCode ==
Keys.Up)
1157 if (e.KeyCode ==
Keys.Down)
1159 if (e.KeyCode ==
Keys.Left)
1161 if (e.KeyCode ==
Keys.Right)
1172 private void duplicateToolStripMenuItem_Click(
object sender, EventArgs e)
1182 private void saveSeriesToolStripMenuItem_Click(
object sender, EventArgs e)
1192 private void TabsView_FormClosing(
object sender, FormClosingEventArgs e)
1206 private void automationToolStripMenuItem_Click(
object sender, EventArgs e)
1211 private void stageToolStripMenuItem_Click(
object sender, EventArgs e)
1222 private async
void addImagesToTabToolStripMenuItem_Click(
object sender, EventArgs e)
1224 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1226 for (
int i = 0; i < openFilesDialog.FileNames.Length; i++)
1228 if (i == 0 && tabControl.TabPages.Count == 0)
1247 private void addImagesOMEToolStripMenuItem_Click(
object sender, EventArgs e)
1249 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1251 for (
int i = 0; i < openFilesDialog.FileNames.Length; i++)
1253 if (i == 0 && tabControl.TabPages.Count == 0)
1255 BioImage b =
BioImage.OpenOME(openFilesDialog.FileNames[i], 0,
true,
true,
false, 0, 0, 0, 0);
1259 BioImage b =
BioImage.OpenOME(openFilesDialog.FileNames[i], 0,
true,
true,
false, 0, 0, 0, 0);
1272 private void openSeriesToolStripMenuItem_Click(
object sender, EventArgs e)
1274 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1276 BioImage[] bs =
BioImage.OpenOMESeries(openFilesDialog.FileName,
false,
true);
1280 for (
int i = 1; i < bs.Length; i++)
1294 private void saveTabToolStripMenuItem_Click(
object sender, EventArgs e)
1296 if (saveOMEFileDialog.ShowDialog() != DialogResult.OK)
1298 bool convert =
false;
1311 mes =
"Saving Series as OME only supports 8 bit & 16 bit images. Convert 16 bit?";
1313 mes =
"Saving Series as OME only supports 8 bit & 16 bit images. Convert 8 bit?";
1314 if (MessageBox.Show(
this, mes,
"Convert to supported format?", MessageBoxButtons.OKCancel) == DialogResult.OK)
1318 if (b.bitsPerPixel > 8)
1329 for (
int i = 0; i < sts.Length; i++)
1333 BioImage.SaveOMESeries(sts, saveOMEFileDialog.FileName, Properties.Settings.Default.Planes);
1343 private void saveTabTiffToolStripMenuItem_Click(
object sender, EventArgs e)
1345 if (saveTiffFileDialog.ShowDialog() != DialogResult.OK)
1348 for (
int i = 0; i < sts.Length; i++)
1352 BioImage.SaveSeries(sts, saveTiffFileDialog.FileName);
1361 private void openSeriesToolStripMenuItem_Click_1(
object sender, EventArgs e)
1363 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1366 foreach (
string item
in openFilesDialog.FileNames)
1368 bms =
BioImage.OpenSeries(openFilesDialog.FileName,
false);
1369 for (
int i = 0; i < bms.Length; i++)
1388 private void TabsView_Load(
object sender, EventArgs e)
1400 private void clearRecentToolStripMenuItem_Click(
object sender, EventArgs e)
1402 Properties.Settings.Default.Recent =
"";
1403 Properties.Settings.Default.Save();
1404 openRecentToolStripMenuItem.DropDownItems.Clear();
1415 private void rotateToolStripMenuItem_DropDownItemClicked(
object sender, ToolStripItemClickedEventArgs e)
1419 string st = e.ClickedItem.Text;
1432 private void rotateToolStripMenuItem_DropDownOpening(
object sender, EventArgs e)
1434 if (rotateToolStripMenuItem.DropDownItems.Count > 0)
1437 foreach (
string item
in sts)
1439 rotateToolStripMenuItem.DropDownItems.Add(item);
1450 private void emissionToolStripMenuItem_Click(
object sender, EventArgs e)
1455 rGBToolStripMenuItem.Checked =
false;
1456 rawToolStripMenuItem.Checked =
false;
1457 filteredToolStripMenuItem.Checked =
false;
1458 emissionToolStripMenuItem.Checked =
true;
1466 private void consoleToolStripMenuItem_Click(
object sender, EventArgs e)
1476 private void switchRedBlueToolStripMenuItem_Click(
object sender, EventArgs e)
1488 private void createFunctionToolStripMenuItem_Click(
object sender, EventArgs e)
1498 private void DropDownItemClicked(
object sender, EventArgs e)
1500 ToolStripMenuItem ts = (ToolStripMenuItem)sender;
1507 private void runToolStripMenuItem_DropDownOpening(
object sender, EventArgs e)
1509 runToolStripMenuItem.DropDownItems.Clear();
1512 runToolStripMenuItem.DropDownItems.Add(item.Value.Name,
null, DropDownItemClicked);
1520 private void reloadToolStripMenuItem_Click(
object sender, EventArgs e)
1529 private void xMLToolStripMenuItem_Click(
object sender, EventArgs e)
1543 private void imagesToStackToolStripMenuItem_Click(
object sender, EventArgs e)
1545 OpenFileDialog fd =
new OpenFileDialog();
1546 fd.Title =
"Images to Stack";
1547 fd.Multiselect =
true;
1548 if (fd.ShowDialog() != DialogResult.OK)
1560 private void importImageJROIToSelectedImageToolStripMenuItem_Click(
object sender, EventArgs e)
1562 if (openImageJROI.ShowDialog() != DialogResult.OK)
1564 foreach (
string item
in openImageJROI.FileNames)
1577 private void exportImageJROIFromSelectedImageToolStripMenuItem_Click(
object sender, EventArgs e)
1579 saveImageJROI.Title =
"Set Filename for exported ROI's.";
1581 if (saveImageJROI.ShowDialog() != DialogResult.OK)
1586 string s = Path.GetDirectoryName(saveImageJROI.FileName) +
"//" + Path.GetFileNameWithoutExtension(saveImageJROI.FileName) +
"-" + i +
".roi";
1597 private void lightToolToolStripMenuItem_Click(
object sender, EventArgs e)
1602 private void savePyramidalToolStripMenuItem_Click(
object sender, EventArgs e)
1604 if (saveOMEFileDialog.ShowDialog() != DialogResult.OK)
1606 BioImage.SaveOMEPyramidal(
App.
viewer.
Images.ToArray(), saveOMEFileDialog.FileName, NetVips.Enums.ForeignTiffCompression.None, 0);
1609 private void findFocusToolStripMenuItem_Click(
object sender, EventArgs e)
1618 private void setupToolStripMenuItem_Click(
object sender, EventArgs e)
1623 private void imagerToolStripMenuItem_Click(
object sender, EventArgs e)
1628 private void stageToolToolStripMenuItem_Click(
object sender, EventArgs e)
1633 private void cellImagerToolStripMenuItem_Click_1(
object sender, EventArgs e)
1638 private void slideImagerToolStripMenuItem_Click(
object sender, EventArgs e)
1643 private void importGeoJSONROIToSelectedImageToolStripMenuItem_Click(
object sender, EventArgs e)
1645 if (openFilesDialog.ShowDialog() != DialogResult.OK)
1650 private void exportGeoJSONROIFromSelectedImageToolStripMenuItem_Click(
object sender, EventArgs e)
1652 if (saveOMEFileDialog.ShowDialog() != DialogResult.OK)
1657 private async
void openQuPathProjectToolStripMenuItem_Click(
object sender, EventArgs e)
1659 if (openQuPathProjDialog.ShowDialog() != DialogResult.OK)
1661 QuPath.Project pr = QuPath.OpenProject(openQuPathProjDialog.FileName);
1662 foreach (QuPath.Image p in pr.Images)
1664 string s = p.ServerBuilder.Uri.Replace(
"file:/",
"");
1669 private void saveQuPathProjectToolStripMenuItem_Click(
object sender, EventArgs e)
1671 if (saveQuPathDialog.ShowDialog() != DialogResult.OK)
1673 List<BioImage[]> images =
new List<BioImage[]>();
1674 foreach (var item
in viewers)
1676 List<BioImage> imageList =
new List<BioImage>();
1677 foreach (var image
in item.Images)
1679 imageList.Add(image);
1681 images.Add(imageList.ToArray());
1683 QuPath.Project.SaveProject(saveQuPathDialog.FileName, images);
1691 tabControl.SelectTab(i);
1693 private void oMEROToolStripMenuItem_Click(
object sender, EventArgs e)
1702 int c = tbs.GetViewerCount();
1703 for (
int v = 0; v < c; v++)
1705 int cc = tbs.GetViewer(v).Images.Count;
1706 for (
int im = 0; im < cc; im++)
1708 if (tbs.GetViewer(v).Images[im].Filename == Path.GetFileName(name))
1711 BioLib.Recorder.Record(
"App.SelectWindow(\"" + name +
"\")");
1712 ImageView.SelectedImage = tbs.GetViewer(v).Images[im];
1713 App.viewer = tbs.GetViewer(v);
1722 BioLib.Recorder.Record(
"App.CloseWindow(\"" + name +
"\")");
1724 int c = tbs.GetViewerCount();
1725 if (name ==
"ROI Manager")
1728 if (name ==
"Stack Tool")
1731 if (name ==
"Channels Tool")
1734 if (name ==
"Scripting")
1737 if (name ==
"Recorder")
1740 if (name ==
"Tools")
1743 for (
int v = 0; v < c; v++)
1745 int cc = tbs.GetViewer(v).Images.Count;
1746 for (
int im = 0; im < cc; im++)
1749 if (vi.
Images[im].Filename == Path.GetFileName(name))
1751 tbs.RemoveTab(vi.
Images[im]);
1754 else if (vi.Name == name)
1756 tbs.RemoveTab(vi.
Images[im]);
1765 foreach (
ImageView item
in tabControl.TabPages)
1767 if (item.Name == name)
1769 item.Name = newName;
1770 foreach (var b
in item.
Images)
1772 b.Filename = newName;
1785 BioLib.Recorder.AddLine(
"App.Rename(\"" + text +
"\");",
false);
1788 private async
void zarrMenuItem_Click(
object sender, EventArgs e)
1790 if (folderBrowserDialog.ShowDialog() != DialogResult.OK)
1792 var bio = await
BioImage.OpenURL(folderBrowserDialog.SelectedPath,
new ZCT(0, 0, 0), 0, 0, 256, 256);
1796 private async
void uriMenuItem_Click(
object sender, EventArgs e)
1799 if (dialog.ShowDialog() != DialogResult.OK)
1801 var bio = await
BioImage.OpenURL(dialog.
Url,
new ZCT(0, 0, 0), 0, 0, 256, 256);
System.Drawing.Image Image
System.Windows.Forms.Keys Keys
System.Windows.Forms.Application Application
AForge.RotateFlipType RotateFlipType
static ROIManager manager
static MicroscopeSetup setup
static BioConsole console
static StackTools stackTools
static List< string > recent
static SlideImager slideImager
static List< Channel > Channels
static ChannelsTool channelsTool
static CellImager cellImager
static Recordings recordings
static bool useBioformats
static Dictionary< string, Function > Functions
static Dictionary< string, Command > Commands
static ROI open(string path)
static bool save(ROI roi, String path)
static void RunMacro(string file, string param)
static List< Macro.Command > Macros
static async void RunOnImage(string con, bool headless, bool onTab, bool bioformats, bool newTab)
ImageView control for image stacks, pyramidal and whole-slide-images.
new AForge.SizeF Scale
Scale when opening image stacks.
PointD Origin
A property of the class PointD. */.
void SetCoordinate(int z, int c, int t)
void UpdateView(bool refreshImages=true)
ViewMode Mode
Setting the view mode of the application. */.
void CopySelection()
It takes the selected ROIs and copies them to the clipboard.
static BioImage SelectedImage
int Level
Current level when viewing whole-slide and pyramidal images.
void AddImage(BioImage im)
async void UpdateImages(bool updatePyramidal=true)
static void MoveRight(double d)
static void MoveDown(double d)
static void MoveUp(double d)
static Dictionary< string, Script > Scripts
void RunScriptFile(string file)
static void RunByName(string name)
ImageView? GetViewer(string name)
void RemoveTab(BioImage b)
static void SelectWindow(string name)
void AddViewer(ImageView v)
void RenameTab(string name, string newName)
bool HasTab(BioImage image)
static System.Drawing.Graphics graphics
ImageView GetViewer(int i)
void UpdateViewMode(ImageView.ViewMode v)
void SetTab(int i)
Sets the current tab index.
void OpenInNewProcess(string file)
static void CloseWindow(string name)
static BioImage SelectedImage
static void Rename(string text)
static ImageView SelectedViewer
void RemoveViewer(ImageView v)