public void run(ImageProcessor ip) { dimz = stack.getSize(); dimy = stack.getWidth(); dimx = stack.getHeight(); SaveDialog sd = new SaveDialog("Save Measurements as Text...", "res", ".dat"); String name = sd.getFileName(); if (name == null) return; String directory = sd.getDirectory(); nb = calculnb(stack); // -1; IJ.showStatus("Measure parameters for the " + nb + " objects ..."); if (nb < 1) { IJ.showMessage("volume must be labeled"); } else { double[] volume_m = new double[nb]; int[] volume_p = new int[nb]; double[] surface = new double[nb]; double[] surfacenb = new double[nb]; double[][][] I = new double[3][3][nb]; double[][] J = new double[3][nb]; double[][][] dir = new double[3][3][nb]; double[] xg = new double[nb]; double[] yg = new double[nb]; double[] zg = new double[nb]; byte[] bord = new byte[nb]; // double[] a = new double[nb]; // double[] b = new double[nb]; // double[] c = new double[nb]; // double[] Fab = new double[nb]; // double[] Fac = new double[nb]; // double[] Fbc = new double[nb]; // double[] sp = new double[nb]; double[][] lmin = new double[nb][3]; double[][] lmax = new double[nb][3]; IJ.showStatus("Measure surfaces ..."); calculmarchsurfstack(stack, nb, surface, volume_m); calculmarchsurfstacknb(stack, nb, surfacenb); // calculvolumestack(stack,nb,volume_p); IJ.showStatus("Measure volumes and inertia ..."); calculcgstack(stack, nb, volume_p, xg, yg, zg); calculinertiestack(stack, nb, xg, yg, zg, I); inertie(nb, I, J, dir); IJ.showStatus("Measure bounding boxes ..."); boitestack(stack, nb, xg, yg, zg, dir, lmin, lmax); borderstack(stack, nb, bord); IJ.showStatus("Save results ..."); sauvegarde( volume_p, volume_m, surface, surfacenb, xg, yg, zg, J, dir, nb, bord, lmin, lmax, directory, name); volume_m = null; volume_p = null; surface = null; xg = null; yg = null; zg = null; } }
private String getPath(String fileName) { SaveDialog sd = new SaveDialog("Save as ", fileName, ".rf"); String outFileName = sd.getFileName(); if (outFileName == null) { return null; } String directory = sd.getDirectory(); String path = directory + outFileName; return path; }
public void run(String arg) { if (IJ.versionLessThan("1.49d")) return; if (!showDialog()) return; SaveDialog sd = new SaveDialog("Save as Bricks...", "", ""); basename = sd.getFileName(); directory = sd.getDirectory(); if (basename == null || directory == null) return; build_bricks(); }
public boolean install(String path) { boolean isURL = path.contains("://"); String lcPath = path.toLowerCase(); if (isURL) path = Opener.updateUrl(path); boolean isTool = lcPath.endsWith("tool.ijm") || lcPath.endsWith("tool.txt") || lcPath.endsWith("tool.class") || lcPath.endsWith("tool.jar"); boolean isMacro = lcPath.endsWith(".txt") || lcPath.endsWith(".ijm"); byte[] data = null; String name = path; if (isURL) { int index = path.lastIndexOf("/"); if (index != -1 && index <= path.length() - 1) name = path.substring(index + 1); data = download(path, name); } else { File f = new File(path); name = f.getName(); data = download(f); } if (data == null) return false; if (name.endsWith(".txt") && !name.contains("_")) name = name.substring(0, name.length() - 4) + ".ijm"; if (name.endsWith(".zip")) { if (!name.contains("_")) { IJ.error("Plugin Installer", "No underscore in file name:\n \n " + name); return false; } name = name.substring(0, name.length() - 4) + ".jar"; } String dir = null; boolean isLibrary = name.endsWith(".jar") && !name.contains("_"); if (isLibrary) { dir = Menus.getPlugInsPath() + "jars"; File f = new File(dir); if (!f.exists()) { boolean ok = f.mkdir(); if (!ok) dir = Menus.getPlugInsPath(); } } if (isTool) { dir = Menus.getPlugInsPath() + "Tools" + File.separator; File f = new File(dir); if (!f.exists()) { boolean ok = f.mkdir(); if (!ok) dir = null; } if (dir != null && isMacro) { String name2 = getToolName(data); if (name2 != null) name = name2; } } if (dir == null) { SaveDialog sd = new SaveDialog("Save Plugin, Macro or Script...", Menus.getPlugInsPath(), name, null); String name2 = sd.getFileName(); if (name2 == null) return false; dir = sd.getDirectory(); } // IJ.log(dir+" "+Menus.getPlugInsPath()); if (!savePlugin(new File(dir, name), data)) return false; if (name.endsWith(".java")) IJ.runPlugIn("ij.plugin.Compiler", dir + name); Menus.updateImageJMenus(); if (isTool) { if (isMacro) IJ.runPlugIn("ij.plugin.Macro_Runner", "Tools/" + name); else if (name.endsWith(".class")) { name = name.replaceAll("_", " "); name = name.substring(0, name.length() - 6); IJ.run(name); } } return true; }