private RenderedImage setPadding( int xPaddingSx, int xPaddingDx, int yPaddingTop, int yPaddingBottom, RenderedImage image) { ImageWorker worker = new ImageWorker(image); worker.border( Math.abs(xPaddingSx), Math.abs(0), Math.abs(yPaddingTop), Math.abs(0), new BorderExtenderConstant(new double[] {Double.NaN})); worker.translate((float) -xPaddingSx, (float) -yPaddingTop, null); return worker.getRenderedImage(); }
worker.translate( Float.valueOf(mosaicLocation.getLow(0) - image.getMinX()), Float.valueOf(mosaicLocation.getLow(1) - image.getMinY()),
if (rasterBounds.x != 0 || rasterBounds.y != 0) { ImageWorker w = new ImageWorker(finalImage); w.translate( (float) rasterBounds.x, (float) rasterBounds.y,
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; }
layout.setHeight(alphaArray[i].getHeight()); w1.setRenderingHint(JAI.KEY_IMAGE_LAYOUT, layout); w1.translate(0f, 0f, null);
int posy = (tile.getRow() - topTile) * DEFAULT_TILE_SIZE; if (posx != 0 || posy != 0) { iw.translate( posx, posy, Interpolation.getInstance(Interpolation.INTERP_NEAREST)); RenderedImage translated = iw.getRenderedImage();