|
Translator |
|
package ij.plugin.filter; import ij.*; import ij.gui.*; import ij.process.*; import java.awt.*; import java.awt.geom.*; /** This plugin implements the Image/Translate command. */ public class Translator implements ExtendedPlugInFilter, DialogListener { private int flags = DOES_ALL|PARALLELIZE_STACKS; private static int xOffset = 15; private static int yOffset = 15; private ImagePlus imp; GenericDialog gd; PlugInFilterRunner pfr; public int setup(String arg, ImagePlus imp) { this.imp = imp; return flags; } public void run(ImageProcessor ip) { if (imp.getRoi()!=null && imp.getRoi().isArea()) ip.translate(xOffset, yOffset, false); else ip.translate(xOffset, yOffset, true); } public int showDialog(ImagePlus imp, String command, PlugInFilterRunner pfr) { this.pfr = pfr; gd = new GenericDialog("Translate"); gd.addNumericField("X Offset (pixels): ", xOffset, 0); gd.addNumericField("Y Offset (pixels): ", yOffset, 0); gd.addPreviewCheckbox(pfr); gd.addDialogListener(this); gd.showDialog(); if (gd.wasCanceled()) return DONE; return IJ.setupDialog(imp, flags); } public boolean dialogItemChanged(GenericDialog gd, AWTEvent e) { xOffset = (int)gd.getNextNumber(); yOffset = (int)gd.getNextNumber(); if (gd.invalidNumber()) { if (gd.wasOKed()) IJ.error("Offset is invalid."); return false; } return true; } public void setNPasses(int nPasses) { } }
|
Translator |
|