MCPcopy Create free account
hub / github.com/AstroImageJ/astroimagej / run

Method run

ij/src/main/java/ij/plugin/Duplicator.java:58–135  ·  view source on GitHub ↗
(String arg)

Source from the content-addressed store, hash-verified

56 private GenericDialog gd;
57
58 public void run(String arg) {
59 imp = IJ.getImage();
60 Roi roiA = imp.getRoi();
61 ImagePlus impA = imp;
62 boolean isRotatedRect = (roiA!=null && roiA instanceof RotatedRectRoi);
63 boolean roiOutside = false;
64 if (roiA!=null) {
65 Rectangle r = roiA.getBounds();
66 if (r.x>=imp.getWidth() || r.y>=imp.getHeight() || r.x+r.width<=0 || r.y+r.height<=0) {
67 ignoreSelection = true;
68 roiOutside = true;
69 }
70 }
71 int stackSize = imp.getStackSize();
72 String title = imp.getTitle();
73 String newTitle = WindowManager.getUniqueName(imp, title);
74 defaultTitle = newTitle;
75 duplicateStack = staticDuplicateStack && !IJ.isMacro();
76 ignoreSelection = (staticIgnoreSelection||ignoreNextSelection) && Macro.getOptions()==null;
77 if (!IJ.altKeyDown()||stackSize>1) {
78 if (imp.isHyperStack() || imp.isComposite()) {
79 if (roiOutside)
80 imp.deleteRoi();
81 boolean ok = duplicateHyperstack(imp, newTitle);
82 if (ok && isRotatedRect)
83 straightenRotatedRect(impA, roiA, IJ.getImage());
84 return;
85 } else
86 newTitle = showDialog(imp, "Duplicate...", "Title: ");
87 }
88 if (isRotatedRect) {
89 Rectangle bounds = imp.getRoi().getBounds();
90 imp.setRoi(bounds);
91 }
92 if (newTitle==null) {
93 if (isRotatedRect)
94 imp.setRoi(roiA);
95 return;
96 }
97 ImagePlus imp2;
98 Roi roi = imp.getRoi();
99 if (ignoreSelection && roi!=null)
100 imp.deleteRoi();
101 if (duplicateStack && (first>1||last<stackSize))
102 imp2 = run(imp, first, last);
103 else if (duplicateStack || imp.getStackSize()==1) {
104 imp2 = run(imp);
105 if (imp.getStackSize()==1) recordCrop(imp);
106 } else {
107 imp2 = crop(imp);
108 recordCrop(imp);
109 }
110 if (ignoreSelection && roi!=null) {
111 imp.setRoi(roi);
112 if (!roiOutside)
113 imp2.setRoi((Roi)roi.clone());
114 }
115 Calibration cal = imp2.getCalibration();

Callers 2

cropMethod · 0.95
duplicateHyperstackMethod · 0.95

Calls 15

getImageMethod · 0.95
getBoundsMethod · 0.95
getUniqueNameMethod · 0.95
isMacroMethod · 0.95
getOptionsMethod · 0.95
altKeyDownMethod · 0.95
duplicateHyperstackMethod · 0.95
straightenRotatedRectMethod · 0.95
showDialogMethod · 0.95
recordCropMethod · 0.95
cropMethod · 0.95
setRoiMethod · 0.95

Tested by

no test coverage detected