def scaleImageUI(): gd = GenericDialog("Scale") gd.addSlider("Scale", 1, 200, 100) gd.addCheckbox("Preview", True) # The UI elements for the above two inputs slider = gd.getSliders().get(0) # the only one checkbox = gd.getCheckboxes().get(0) # the only one imp = WM.getCurrentImage() if not imp: print "Open an image first!" return previewer = ScalingPreviewer(imp, slider, checkbox) slider.addAdjustmentListener(previewer) checkbox.addItemListener(previewer) gd.showDialog() if gd.wasCanceled(): previewer.reset() print "User canceled dialog!" else: previewer.scale() previewer.destroy()
from java.lang import Math, System image = WindowManager.getCurrentImage() ip = image.getProcessor() pixelsCopy = ip.getPixelsCopy() pixels = ip.getPixels() width = ip.getWidth() height = ip.getHeight() minWidth = int(Math.sqrt(len(pixels) / 16)) maxWidth = minWidth * 16 class Listener(AdjustmentListener): def adjustmentValueChanged(self, event): value = event.getSource().getValue() rowstride = min(width, value) for j in range(0, min(height, int(width * height / value))): System.arraycopy(pixelsCopy, j * value, pixels, j * width, rowstride) image.updateAndDraw() gd = GenericDialog("Width") gd.addSlider("width", minWidth, maxWidth, ip.getHeight()) gd.getSliders().get(0).addAdjustmentListener(Listener()) gd.showDialog() if gd.wasCanceled(): pixels[0:width * height] = pixelsCopy image.updateAndDraw()
from java.awt.event import AdjustmentListener from java.lang import Math, System image = WindowManager.getCurrentImage() ip = image.getProcessor() pixelsCopy = ip.getPixelsCopy() pixels = ip.getPixels() width = ip.getWidth() height = ip.getHeight() minWidth = int(Math.sqrt(len(pixels) / 16)) maxWidth = minWidth * 16 class Listener(AdjustmentListener): def adjustmentValueChanged(self, event): value = event.getSource().getValue() rowstride = min(width, value) for j in range(0, min(height, int(width * height / value))): System.arraycopy(pixelsCopy, j * value, pixels, j * width, rowstride) image.updateAndDraw() gd = GenericDialog("Width") gd.addSlider("width", minWidth, maxWidth, ip.getHeight()) gd.getSliders().get(0).addAdjustmentListener(Listener()) gd.showDialog() if gd.wasCanceled(): pixels[0:width * height] = pixelsCopy image.updateAndDraw()