@Override public Object getParamValue(String opName, String param) { if (opName != null && param != null) { ImageOpNode node = getNode(opName); if (node != null) { return node.getParam(param); } } return null; }
@Override public boolean setParamValue(String opName, String param, Object value) { if (opName != null && param != null) { ImageOpNode node = getNode(opName); if (node != null) { node.setParam(param, value); return true; } } return false; }
@Override public void removeParam(String opName, String param) { if (opName != null && param != null) { ImageOpNode node = getNode(opName); if (node != null) { node.removeParam(param); } } }
@Override public void zoom(Double viewScale) { E img = imageLayer.getSourceImage(); ImageOpNode node = imageLayer.getDisplayOpManager().getNode(AffineTransformOp.OP_NAME); if (img != null && node != null) { node.setParam(Param.INPUT_IMG, getSourceImage()); actionsInView.put(ActionW.ZOOM.cmd(), viewScale); super.zoom(Math.abs(viewScale)); updateAffineTransform(); } }
protected PlanarImage getSourceImage() { SyncType type = (SyncType) actionsInView.get(ZoomWin.FREEZE_CMD); if (SyncType.PARENT_PARAMETERS.equals(type) || SyncType.PARENT_IMAGE.equals(type)) { return freezeOperations.getLastNodeOutputImage(); } // return the image before the zoom operation from the parent view ImageOpNode node = view2d.getImageLayer().getDisplayOpManager().getNode(AffineTransformOp.OP_NAME); if (node != null) { return (PlanarImage) node.getParam(Param.INPUT_IMG); } return view2d.getImageLayer().getDisplayOpManager().getLastNodeOutputImage(); }
public void applyPreProcess(ViewCanvas<ImageElement> view) { for (ImageOpNode action : postProcessOpManager.getOperations()) { if (preProcessOpManager.getNode(action.getName()) == null) { preProcessOpManager.addImageOperationAction(action.copy()); } } if (view != null) { view.getImageLayer().setImage(view.getImage(), preProcessOpManager); } }
private void operationRotate(JMenu operationsMenu, final List<E> medias, String label, final int angle) { operationsMenu.add(new JMenuItem(new DefaultAction(label, event -> medias.stream().filter(ImageElement.class::isInstance).map(ImageElement.class::cast).forEach(i -> { AcquireImageInfo info = AcquireManager.findByImage(i); int change = (info.getNextValues().getFullRotation() + angle >= 0) ? info.getNextValues().getRotation() + angle : info.getNextValues().getRotation() + 360 + angle; info.getNextValues().setRotation(change); ImageOpNode node = info.getPreProcessOpManager().getNode(RotationOp.OP_NAME); if (node == null) { node = new RotationOp(); info.addPreProcessImageOperationAction(node); } else { node.clearIOCache(); } node.setParam(RotationOp.P_ROTATE, info.getNextValues().getFullRotation()); })))); }
@Override public Transferable createTransferable(JComponent comp) { // Clear disOp = null; // TODO make only one export function with a dialog to choose to disable zoom (real size), add graphics, // anonymize and other default remove annotations if (comp instanceof Image2DViewer) { Image2DViewer<?> view2DPane = (Image2DViewer<?>) comp; PlanarImage src = view2DPane.getSourceImage(); if (src != null) { SimpleOpManager opManager = view2DPane.getImageLayer().getDisplayOpManager().copy(); opManager.removeImageOperationAction(opManager.getNode(ZoomOp.OP_NAME)); opManager.setFirstNode(src); disOp = opManager; return this; } } return null; }
@Override public void applyNextValues() { AcquireImageInfo imageInfo = getImageInfo(); ImageOpNode node = imageInfo.getPreProcessOpManager().getNode(AutoLevelsOp.OP_NAME); if (node == null) { node = new AutoLevelsOp(); imageInfo.addPreProcessImageOperationAction(node); } else { node.clearIOCache(); } node.setParam(AutoLevelsOp.P_AUTO_LEVEL, imageInfo.getNextValues().isAutoLevel()); }
public void updateCropDisplay(AcquireImageInfo imageInfo) { ImageOpNode node = imageInfo.getPreProcessOpManager().getNode(MaskOp.OP_NAME); if (node == null) { node = new MaskOp(); imageInfo.addPreProcessImageOperationAction(node); } else { node.clearIOCache(); } node.setParam(MaskOp.P_SHOW, true); node.setParam(MaskOp.P_SHAPE, imageInfo.getNextValues().getCropZone()); node.setParam(MaskOp.P_ALPHA, 0.7); }
@Override public void applyNextValues() { AcquireImageInfo imageInfo = AcquireObject.getImageInfo(); ImageOpNode node = imageInfo.getPreProcessOpManager().getNode(BrightnessOp.OP_NAME); if (node == null) { node = new BrightnessOp(); imageInfo.addPreProcessImageOperationAction(node); } else { node.clearIOCache(); } node.setParam(BrightnessOp.P_BRIGTNESS_VALUE, (double) imageInfo.getNextValues().getBrightness()); node.setParam(BrightnessOp.P_CONTRAST_VALUE, (double) imageInfo.getNextValues().getContrast()); } }