Refine search
/** * Forces the {@linkplain #image} color model to the {@linkplain ColorSpace#CS_sRGB RGB color * space}. If the current color space is already of {@linkplain ColorSpace#TYPE_RGB RGB type}, * then this method does nothing. This operation may loose the alpha channel. * * @return this {@link ImageWorker}. * @see #isColorSpaceRGB * @see ColorConvertDescriptor */ public final ImageWorker forceColorSpaceRGB() { if (!isColorSpaceRGB()) { final ColorModel cm = new ComponentColorModel( ColorSpace.getInstance(ColorSpace.CS_sRGB), false, false, Transparency.OPAQUE, image.getSampleModel().getDataType()); // force computation of the new colormodel forceColorModel(cm); } // All post conditions for this method contract. assert isColorSpaceRGB(); return this; }
return maskIndexColorModel(transparentColor); } else if (cm instanceof ComponentColorModel) { switch (image.getSampleModel().getDataType()) { case DataBuffer.TYPE_BYTE:
@Override RenderedImage process( ImageWorker inputWorker, Hints hints, Map<String, Expression> parameters) { checkParameters(parameters, KEY_MIN, KEY_MAX); Map<String, Object> processParams = getMinMaxParams(parameters); RenderedImage inputImage = inputWorker.getRenderedImage(); final int dataType = inputImage.getSampleModel().getDataType(); Utilities.ensureNonNull("processParams", processParams); double minData = (double) processParams.get(KEY_MIN); double maxData = (double) processParams.get(KEY_MAX); if (dataType == DataBuffer.TYPE_BYTE) { // Optimization for byte images, we use the lookup operation if (maxData == MAX_BYTE && minData == MIN_BYTE) return inputImage; LookupTable table = createByteLookupTable(processParams); inputWorker.setRenderingHints(hints); inputWorker.lookup(table); return inputWorker.getRenderedImage(); } // // STEP 2 use generic piecewise // processParams.put(KEY_DATATYPE, dataType); final PiecewiseTransform1D<DefaultPiecewiseTransform1DElement> transform = generatePiecewise(processParams); inputWorker.piecewise(transform, Integer.valueOf(0)); return inputWorker.getRenderedImage(); }
/** * Forces the {@linkplain #image} color model to the {@linkplain ColorSpace#CS_PYCC YCbCr color * space}. If the current color space is already of {@linkplain ColorSpace#CS_PYCC YCbCr}, then * this method does nothing. * * @return this {@link ImageWorker}. * @see #isColorSpaceRGB * @see ColorConvertDescriptor */ public final ImageWorker forceColorSpaceYCbCr() { if (!isColorSpaceYCbCr()) { // go to component model forceComponentColorModel(); // Create a ColorModel to convert the image to YCbCr. final ColorModel cm = new ComponentColorModel( CS_PYCC, false, false, Transparency.OPAQUE, this.image.getSampleModel().getDataType()); // force computation of the new colormodel forceColorModel(cm); } // All post conditions for this method contract. assert isColorSpaceYCbCr(); return this; }
@Override RenderedImage process( ImageWorker inputWorker, Hints hints, Map<String, Expression> parameters) { checkParameters(parameters, KEY_MIN, KEY_MAX); Map<String, Object> processParams = getMinMaxParams(parameters); RenderedImage inputImage = inputWorker.getRenderedImage(); final int dataType = inputImage.getSampleModel().getDataType(); Utilities.ensureNonNull("processParams", processParams); double minData = (double) processParams.get(KEY_MIN); double maxData = (double) processParams.get(KEY_MAX); if (dataType == DataBuffer.TYPE_BYTE) { if (maxData == MAX_BYTE && minData == MIN_BYTE) { return inputImage; } // Optimization for byte images, we use the lookup operation LookupTable table = createByteLookupTable(processParams); inputWorker.setRenderingHints(hints); inputWorker.lookup(table); return inputWorker.getRenderedImage(); } // // STEP 2 use generic piecewise // final PiecewiseTransform1D<DefaultPiecewiseTransform1DElement> transform = generatePiecewise(processParams); inputWorker.piecewise(transform, Integer.valueOf(0)); return inputWorker.getRenderedImage(); }
/** * Formats the underlying image to the provided data type. * * @param dataType to be used for this {@link FormatDescriptor} operation. * @return this {@link ImageWorker} */ public final ImageWorker format(final int dataType) { ParameterBlock pb = new ParameterBlock(); pb.setSource(image, 0); // The source image. pb.set(dataType, 0); image = JAI.create("Format", pb, getRenderingHints()); setNoData(RangeFactory.convert(nodata, dataType)); // All post conditions for this method contract. assert image.getSampleModel().getDataType() == dataType; return this; }
SampleModel firstSampleModel = first.getSampleModel(); int firstDataType = firstSampleModel.getDataType(); int firstBands = firstSampleModel.getNumBands(); int firstSampleSize = firstSampleModel.getSampleSize()[0]; for (int i = 1; i < numSources; i++) { RenderedImage source = (RenderedImage) sources.get(i); SampleModel sourceSampleModel = source.getSampleModel(); ColorModel sourceColorModel = source.getColorModel(); int sourceBands = sourceSampleModel.getNumBands(); int sourceDataType = sourceSampleModel.getDataType(); if (sourceDataType == DataBuffer.TYPE_UNDEFINED) { hasUnsupportedTypes = true;
assert inputImage.getSampleModel().getNumBands() == 1 : inputImage; final int dataType = inputImage.getSampleModel().getDataType(); RenderedImage result = inputImage; if (!Double.isNaN(gammaValue) && Math.abs(gammaValue - 1.0) > 1E-6) { assert result.getSampleModel().getNumBands() == 1 : result; return result;
loadedImage.getSampleModel().getDataType())
final int dataType = coverage.getRenderedImage().getSampleModel().getDataType(); for (int i = 0; i < background.length; i++) {
@Override RenderedImage process( ImageWorker inputWorker, Hints hints, Map<String, Expression> parameters) { RenderedImage inputImage = inputWorker.getRenderedImage(); assert inputImage.getSampleModel().getNumBands() == 1 : inputImage; final int dataType = inputImage.getSampleModel().getDataType(); if (dataType == DataBuffer.TYPE_BYTE) { // // Optimisation for byte images // LookupTable table = createByteLookupTable(EMPTY_MAP); inputWorker.lookup(table); return inputWorker.getRenderedImage(); } // General case, we use the piecewise1D transform // // STEP 1 do the extrema // inputWorker.removeRenderingHints(); final double[] minimum = inputWorker.getMinimums(); final double[] maximum = inputWorker.getMaximums(); // // STEP 2 use generic piecewise // final PiecewiseTransform1D<DefaultPiecewiseTransform1DElement> transform = generatePiecewise(setMinMaxParams(minimum[0], maximum[0])); inputWorker.piecewise(transform, Integer.valueOf(0)); return inputWorker.getRenderedImage(); }
@Override RenderedImage process( ImageWorker inputWorker, Hints hints, Map<String, Expression> parameters) { RenderedImage inputImage = inputWorker.getRenderedImage(); assert inputImage.getSampleModel().getNumBands() == 1 : inputImage; final int dataType = inputImage.getSampleModel().getDataType(); if (dataType == DataBuffer.TYPE_BYTE) { // // Optimisation for byte images m we use lookup // LookupTable table = createByteLookupTable(EMPTY_MAP); inputWorker.lookup(table); return inputWorker.getRenderedImage(); } // General case // define a specific piecewise for the logarithm // // STEP 1 do the extrema // inputWorker.removeRenderingHints(); final double[] minimum = inputWorker.getMinimums(); final double[] maximum = inputWorker.getMaximums(); // // STEP 2 use generic piecewise // final PiecewiseTransform1D<DefaultPiecewiseTransform1DElement> transform = generatePiecewise(setMinMaxParams(minimum[0], maximum[0])); inputWorker.piecewise(transform, Integer.valueOf(0)); return inputWorker.getRenderedImage(); }
final int dataType = inputRI.getSampleModel().getDataType(); double scale = 1; double offset = 0; assert inputRI.getSampleModel().getDataType() == DataBuffer.TYPE_BYTE; } else { inputRI =
/** Performs Lookup on the underlying image */ public ImageWorker lookup(LookupTable table) { // ParameterBlock definition ParameterBlock pb = new ParameterBlock(); pb.setSource(image, 0); pb.set(table, 0); pb.set(roi, 2); // Convert the NoData if (nodata != null) { nodata = RangeFactory.convert(nodata, image.getSampleModel().getDataType()); } pb.set(nodata, 3); if (isNoDataNeeded()) { if (background != null && background.length > 0) { pb.set(background[0], 1); } } image = JAI.create("Lookup", pb, getRenderingHints()); return this; }
/** * If the was not already tiled, tile it. Note that no tiling will be done if * 'getRenderingHints()' failed to suggest a tile size. This method is for internal use by * {@link #write} methods only. * * @return this {@link ImageWorker}. */ public final ImageWorker tile() { final RenderingHints hints = getRenderingHints(); final ImageLayout layout = getImageLayout(hints); if (layout.isValid(ImageLayout.TILE_WIDTH_MASK) || layout.isValid(ImageLayout.TILE_HEIGHT_MASK)) { final int type = image.getSampleModel().getDataType(); // ParameterBlock definition ParameterBlock pb = new ParameterBlock(); pb.setSource(image, 0); // The source image. pb.set(type, 0); image = JAI.create("Format", pb, hints); setNoData(RangeFactory.convert(nodata, type)); } return this; }
pb.set(image.getSampleModel().getDataType(), 0); setNoData(RangeFactory.convert(nodata, image.getSampleModel().getDataType())); invalidateStatistics(); return this;
Map<String, Object> processParams = getMinMaxParams(parameters); RenderedImage inputImage = inputWorker.getRenderedImage(); final int dataType = inputImage.getSampleModel().getDataType(); Utilities.ensureNonNull("processParams", processParams); double minData = (double) processParams.get(KEY_MIN);
false, Transparency.OPAQUE, image.getSampleModel().getDataType());
currentSourceCoverage .getRenderedImage() .getSampleModel() .getDataType()); layout = new ImageLayout(); layout.setColorModel(cm); intermediateOps.add(op); op = w.format(op.getSampleModel().getDataType()).getRenderedImage(); final GridSampleDimension[] sd = new GridSampleDimension[op.getSampleModel().getNumBands()]; for (int i = 0; i < sd.length; i++) sd[i] =
int dataType = sources[0].getRenderedImage().getSampleModel().getDataType(); int dataTypeCov = cov.getRenderedImage().getSampleModel().getDataType(); if (dataType != dataTypeCov) { throw new IllegalArgumentException("Input Coverages must have the same data type");