private double[] getScalingParams(ParameterBlock paramBlock, boolean isScale2) { // Shearing is not taken into account. // params are ordered like this: scaleX, scaleY, transX, transY double[] scalingParams = new double[4]; for (int i = 0; i < 4; i++) { // Use proper datatype parameter getter depending on the type of operation scalingParams[i] = isScale2 ? paramBlock.getDoubleParameter(i) : paramBlock.getFloatParameter(i); } return scalingParams; }
/** * Creates a {@link RenderedImage} for the results of an imaging * operation for a given {@link ParameterBlock} and {@link RenderingHints}. */ public RenderedImage create(final ParameterBlock param, final RenderingHints hints) { final RenderedImage image = (RenderedImage)param.getSource(0); final ImageLayout layout = (ImageLayout)hints.get(JAI.KEY_IMAGE_LAYOUT); final double low = param.getDoubleParameter(0); final double high = param.getDoubleParameter(1); final double padValue = param.getDoubleParameter(2); return new Hysteresis(image, layout, hints, low, high, padValue); } }
/** * Creates a {@link RenderedImage} for the results of an imaging * operation for a given {@link ParameterBlock} and {@link RenderingHints}. * * @param param The parameter to be given to the image operation. * @param hints An optional set of hints, or {@code null}. */ @Override public RenderedImage create(final ParameterBlock param, final RenderingHints hints) { final RenderedImage image = (RenderedImage) param.getSource(0); final ImageLayout layout = (ImageLayout) hints.get(JAI.KEY_IMAGE_LAYOUT); final double low = param.getDoubleParameter(0); final double high = param.getDoubleParameter(1); final double padValue = param.getDoubleParameter(2); return new Hysteresis(image, layout, hints, low, high, padValue); } }
/** * Validates the input parameters. * * <p> In addition to the standard checks performed by the * superclass method, this method checks that "xScale" and "yScale" * are both greater than 0. */ protected boolean validateParameters(ParameterBlock args, StringBuffer msg) { if (!super.validateParameters(args, msg)) { return false; } double xScale = args.getDoubleParameter(0); double yScale = args.getDoubleParameter(1); ROI roi = null; if(args.getNumParameters() > 5 && args.getObjectParameter(5) != null){ roi = (ROI) args.getObjectParameter(5); } if ((xScale <= 0 || yScale <= 0) && roi == null) { msg.append(getName() + " " + JaiI18N.getString("ScaleDescriptor6")); return false; } return true; }
/** * Validates the input parameters. * * <p> In addition to the standard checks performed by the * superclass method, this method checks that "xScale" and "yScale" * are both greater than 0. */ protected boolean validateParameters(ParameterBlock args, StringBuffer msg) { if (!super.validateParameters(args, msg)) { return false; } double xScale = args.getDoubleParameter(0); double yScale = args.getDoubleParameter(1); ROI roi = null; if(args.getNumParameters() > 5 && args.getObjectParameter(5) != null){ roi = (ROI) args.getObjectParameter(5); } if ((xScale <= 0 || yScale <= 0) && roi == null) { msg.append(getName() + " " + JaiI18N.getString("ScaleDescriptor6")); return false; } return true; }
Boolean removeCollinear = (Boolean) paramBlock.getObjectParameter(VectorizeDescriptor.REMOVE_COLLINEAR_ARG); double filterThreshold = paramBlock.getDoubleParameter(VectorizeDescriptor.FILTER_SMALL_POLYS_ARG); if (Double.isNaN(filterThreshold)) { filterThreshold = 0;
@Override public RenderedImage create(ParameterBlock pb, RenderingHints hints) { // Extracting the Layout ImageLayout l = RIFUtil.getImageLayoutHint(hints); // Extract Source RenderedImage source = pb.getRenderedSource(0); // Extract Parameters double[][] matrix = (double[][]) pb.getObjectParameter(0); ROI roi = (ROI) pb.getObjectParameter(1); Range nodata = (Range) pb.getObjectParameter(2); double destinationNoData = pb.getDoubleParameter(3); return new BandCombineOpImage(source, hints, l, matrix, roi, nodata, destinationNoData); }
double destinationNoData = paramBlock.getDoubleParameter(1);
public RenderedImage create(ParameterBlock paramBlock, RenderingHints renderHints) { // Get ImageLayout from renderHints if any. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); // Getting source RenderedImage source = paramBlock.getRenderedSource(0); // Getting the parameters ColorCube colorMap = (ColorCube) paramBlock.getObjectParameter(0); KernelJAI[] ditherMask = (KernelJAI[]) paramBlock.getObjectParameter(1); ROI roi = (ROI) paramBlock.getObjectParameter(2); Range nodata = (Range) paramBlock.getObjectParameter(3); double destNoData = paramBlock.getDoubleParameter(4); return new OrderedDitherOpImage(source, renderHints, layout, colorMap, ditherMask, roi, nodata, destNoData); }
public RenderedImage create(ParameterBlock paramBlock, RenderingHints renderHints) { // Get ImageLayout from renderHints if any. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); // Getting source RenderedImage source = paramBlock.getRenderedSource(0); // Getting the parameters ColorCube colorMap = (ColorCube) paramBlock.getObjectParameter(0); KernelJAI[] ditherMask = (KernelJAI[]) paramBlock.getObjectParameter(1); ROI roi = (ROI) paramBlock.getObjectParameter(2); Range nodata = (Range) paramBlock.getObjectParameter(3); double destNoData = paramBlock.getDoubleParameter(4); return new OrderedDitherOpImage(source, renderHints, layout, colorMap, ditherMask, roi, nodata, destNoData); }
/** * Creates a new instance of <code>ThresholdOpImage</code> in the rendered layer. * * @param paramBlock ParameterBlock with the source image and the input parameters. * @param hints Optionally contains destination image layout. */ public RenderedImage create(ParameterBlock paramBlock, RenderingHints renderHints) { // Get ImageLayout from renderHints if any. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); // Parameters Range nodata = (Range) paramBlock.getObjectParameter(0); double destinationNoData = paramBlock.getDoubleParameter(1); ROI roi = (ROI) paramBlock.getObjectParameter(2); return new ClampOpImage(paramBlock.getRenderedSource(0), renderHints, nodata, roi, destinationNoData, layout, (double[]) paramBlock.getObjectParameter(3), (double[]) paramBlock.getObjectParameter(4)); } }
/** * Creates a new instance of <code>AlgebraOpImage</code> in the rendered layer. This method satisfies the implementation of RIF. * * @param paramBlock The two source images to be added. * @param renderHints Optionally contains destination image layout. */ public RenderedImage create(ParameterBlock pb, RenderingHints renderHints) { // Get ImageLayout from renderHints if any. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); int numSrc = pb.getNumSources(); RenderedImage[] sources = new RenderedImage[numSrc]; for (int i = 0; i < numSrc; i++) { sources[i] = pb.getRenderedSource(i); } Operator op = (Operator) pb.getObjectParameter(0); ROI roi = (ROI) pb.getObjectParameter(1); Range noData = (Range) pb.getObjectParameter(2); double destinationNoData = pb.getDoubleParameter(3); return new AlgebraOpImage(renderHints, layout, op, roi, noData, destinationNoData, sources); }
/** * Creates a new instance of <code>BinarizeOpImage</code> in the rendered layer. * * @param pb The source image and the input parameters. * @param hints Optionally contains destination image layout. */ public RenderedImage create(ParameterBlock pb, RenderingHints renderHints) { // Get ImageLayout from renderHints if any. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); // Getting source RenderedImage src = pb.getRenderedSource(0); // Getting parameters double threshold = pb.getDoubleParameter(0); ROI roi = (ROI) pb.getObjectParameter(1); Range nodata = (Range) pb.getObjectParameter(2); nodata = RangeFactory.convert(nodata, src.getSampleModel().getDataType()); return new BinarizeOpImage(src, renderHints, layout, threshold, roi, nodata); }
/** * Creates a new instance of <code>BinarizeOpImage</code> in the rendered layer. * * @param pb The source image and the input parameters. * @param hints Optionally contains destination image layout. */ public RenderedImage create(ParameterBlock pb, RenderingHints renderHints) { // Get ImageLayout from renderHints if any. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); // Getting source RenderedImage src = pb.getRenderedSource(0); // Getting parameters double threshold = pb.getDoubleParameter(0); ROI roi = (ROI) pb.getObjectParameter(1); Range nodata = (Range) pb.getObjectParameter(2); nodata = RangeFactory.convert(nodata, src.getSampleModel().getDataType()); return new BinarizeOpImage(src, renderHints, layout, threshold, roi, nodata); }
/** * Creates a new instance of <code>ThresholdOpImage</code> in the rendered layer. * * @param paramBlock ParameterBlock with the source image and the input parameters. * @param hints Optionally contains destination image layout. */ public RenderedImage create(ParameterBlock paramBlock, RenderingHints renderHints) { // Get ImageLayout from renderHints if any. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); // Parameters Range nodata = (Range) paramBlock.getObjectParameter(0); double destinationNoData = paramBlock.getDoubleParameter(1); ROI roi = (ROI) paramBlock.getObjectParameter(2); return new ThresholdOpImage(paramBlock.getRenderedSource(0), renderHints, nodata, roi, destinationNoData, layout, (double[]) paramBlock.getObjectParameter(3), (double[]) paramBlock.getObjectParameter(4), (double[]) paramBlock.getObjectParameter(5)); } }
@Override public RenderedImage create(ParameterBlock pb, RenderingHints hints) { // Get ImageLayout from renderHints if present. ImageLayout layout = RIFUtil.getImageLayoutHint(hints); // Selection of the source RenderedImage source = pb.getRenderedSource(0); // Selection of the parameters double[] scales = (double[]) pb.getObjectParameter(0); double[] offsets = (double[]) pb.getObjectParameter(1); ROI roi = (ROI) pb.getObjectParameter(2); Range noData = (Range) pb.getObjectParameter(3); noData = RangeFactory.convert(noData, source.getSampleModel().getDataType()); boolean useRoiAccessor = (Boolean) pb.getObjectParameter(4); double destinationNoData = pb.getDoubleParameter(5); // Creation of the new image return new RescaleOpImage(source, layout, hints, scales, offsets, destinationNoData, roi, noData, useRoiAccessor); }
/** * Creates a new instance of <code>LookupOpImage</code>. * * @param pb The operation parameters. * @param hints Image RenderingHints. */ public RenderedImage create(ParameterBlock pb, RenderingHints renderHints) { // Get ImageLayout from renderHints if present. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); // Get the source image RenderedImage source = pb.getRenderedSource(0); // Get the image params LookupTable table = (LookupTable) pb.getObjectParameter(0); double destinationNoData = pb.getDoubleParameter(1); ROI roi = (ROI) pb.getObjectParameter(2); Range noData = (Range) pb.getObjectParameter(3); noData = RangeFactory.convert(noData, source.getSampleModel().getDataType()); boolean useRoiAccessor = (Boolean) pb.getObjectParameter(4); // Creation of the lookup image return new LookupOpImage(source, layout, renderHints, table, destinationNoData, roi, noData, useRoiAccessor); } }
@Override public RenderedImage create(ParameterBlock pb, RenderingHints hints) { // Get ImageLayout from renderHints if present. ImageLayout layout = RIFUtil.getImageLayoutHint(hints); // Selection of the source RenderedImage source = pb.getRenderedSource(0); // Selection of the parameters double[] scales = (double[]) pb.getObjectParameter(0); double[] offsets = (double[]) pb.getObjectParameter(1); ROI roi = (ROI) pb.getObjectParameter(2); Range noData = (Range) pb.getObjectParameter(3); noData = RangeFactory.convert(noData, source.getSampleModel().getDataType()); boolean useRoiAccessor = (Boolean) pb.getObjectParameter(4); double destinationNoData = pb.getDoubleParameter(5); // Creation of the new image return new RescaleOpImage(source, layout, hints, scales, offsets, destinationNoData, roi, noData, useRoiAccessor); }
/** * Creates a new instance of <code>LookupOpImage</code>. * * @param pb The operation parameters. * @param hints Image RenderingHints. */ public RenderedImage create(ParameterBlock pb, RenderingHints renderHints) { // Get ImageLayout from renderHints if present. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); // Get the source image RenderedImage source = pb.getRenderedSource(0); // Get the image params LookupTable table = (LookupTable) pb.getObjectParameter(0); double destinationNoData = pb.getDoubleParameter(1); ROI roi = (ROI) pb.getObjectParameter(2); Range noData = (Range) pb.getObjectParameter(3); noData = RangeFactory.convert(noData, source.getSampleModel().getDataType()); boolean useRoiAccessor = (Boolean) pb.getObjectParameter(4); // Creation of the lookup image return new LookupOpImage(source, layout, renderHints, table, destinationNoData, roi, noData, useRoiAccessor); } }
/** * Creates a new instance of <code>BorderOpImage</code> in the rendered layer. * * @param args The source image and the border information * @param hints Optionally contains destination image layout. */ public RenderedImage create(ParameterBlock pb, RenderingHints renderHints) { // Get ImageLayout from renderHints if any. ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints); // Selection of the source RenderedImage source = pb.getRenderedSource(0); // Selection of the parameters int leftPad = pb.getIntParameter(0); int rightPad = pb.getIntParameter(1); int topPad = pb.getIntParameter(2); int bottomPad = pb.getIntParameter(3); BorderExtender type = (BorderExtender) pb.getObjectParameter(4); Range noData = (Range) pb.getObjectParameter(5); noData = RangeFactory.convert(noData, source.getSampleModel().getDataType()); double destinationNoData = pb.getDoubleParameter(6); // Creation of the BorderOpImage instance return new BorderOpImage(source, renderHints, layout, leftPad, rightPad, topPad, bottomPad, type, noData, destinationNoData); } }