RenderingHints hints = new Hints(JAI.getDefaultInstance().getRenderingHints()); hints.putAll(GeoTools.getDefaultHints()); return new OpImage(new Vector(sourceImages), il, hints, false) {
private RenderedImage mosaicHeterogeneousImages(List<ImageInTile> sources) { // at the time of writing, only JAI-EXT mosaic can handle a mix of different // color models, we need to use it explicitly RenderedImage image; final ParameterBlockJAI pb = new ParameterBlockJAI(new it.geosolutions.jaiext.mosaic.MosaicDescriptor()); for (ImageInTile it : sources) { if (it.posx != 0 || it.posy != 0) { ImageWorker iw = new ImageWorker(it.image); iw.translate( it.posx, it.posy, Interpolation.getInstance(Interpolation.INTERP_NEAREST)); RenderedImage translated = iw.getRenderedImage(); pb.addSource(translated); } else { pb.addSource(it.image); } } pb.setParameter("mosaicType", MosaicDescriptor.MOSAIC_TYPE_OVERLAY); pb.setParameter("sourceAlpha", null); pb.setParameter("sourceROI", null); pb.setParameter("sourceThreshold", null); pb.setParameter("backgroundValues", new double[] {0}); pb.setParameter("nodata", null); RenderingHints hints = new Hints(JAI.getDefaultInstance().getRenderingHints()); hints.putAll(GeoTools.getDefaultHints()); image = new MosaicRIF().create(pb, hints); return image; }
false, 1, JAI.getDefaultInstance().getRenderingHints()); double[][] extrema = (double[][]) extremaOp.getProperty("Extrema"); double[] mins = extrema[0];
if (hints == null) { this.hints = JAI.getDefaultInstance().getRenderingHints(); } else { this.hints = hints;
if (hints == null) { this.hints = JAI.getDefaultInstance().getRenderingHints(); } else { this.hints = hints;
/** * Quantize if the source did not do so already * * @param canvas * @return */ @Override public RenderedImage preprocess(RenderedImage canvas) { if (!(canvas.getColorModel() instanceof IndexColorModel)) { if (canvas.getColorModel() instanceof ComponentColorModel && canvas.getSampleModel().getDataType() == DataBuffer.TYPE_BYTE) { ColorIndexer indexer = new Quantizer(256).subsample().buildColorIndexer(canvas); if (indexer != null) { ParameterBlock pb = new ParameterBlock(); pb.setSource(canvas, 0); // The source image. pb.set(indexer, 0); canvas = JAI.create( "ColorIndexer", pb, JAI.getDefaultInstance().getRenderingHints()); } } } return canvas; } };
pb.setParameter("nodata", null); RenderingHints hints = new Hints(JAI.getDefaultInstance().getRenderingHints()); hints.putAll(GeoTools.getDefaultHints()); image = new MosaicRIF().create(pb, hints);