Package org.jaitools.imageutils

Examples of org.jaitools.imageutils.ImageLayout2


                        Float.valueOf(rasterBounds.width),
                        Float.valueOf(rasterBounds.height),
                        values,
                        null);
                if(rasterManager.baseImageType!=null&&rasterManager.baseImageType.getColorModel()!=null){
                    final ImageLayout2 il= new ImageLayout2();
                    il.setColorModel(rasterManager.baseImageType.getColorModel());
                    Dimension tileSize= request.getTileDimensions();
                    if(tileSize==null){
                        tileSize=JAI.getDefaultTileSize();
                    }
                    il.setSampleModel(rasterManager.baseImageType.getColorModel().createCompatibleSampleModel(tileSize.width, tileSize.height));
                    il.setTileGridXOffset(0).setTileGridYOffset(0).setTileWidth((int)tileSize.getWidth()).setTileHeight((int)tileSize.getHeight());
                    return FormatDescriptor.create(
                            finalImage,
                            Integer.valueOf(il.getSampleModel(null).getDataType()),
                            new RenderingHints(JAI.KEY_IMAGE_LAYOUT,il));
                }
                return finalImage;
            }
View Full Code Here


        // TILING
        //
        ////
        if(tileSizeX>0&&tileSizeY>0){
            // Tile Size
            final ImageLayout layout= new ImageLayout2();
            layout.setTileGridXOffset(0).setTileGridYOffset(0).setTileHeight(tileSizeY).setTileWidth(tileSizeX);
            hints.add(new RenderingHints(JAI.KEY_IMAGE_LAYOUT,layout));           
        }
    }
View Full Code Here

     */
    protected void setLayout(ImageReader reader) throws IOException {

        Utilities.ensureNonNull("reader", reader);
        // save ImageLayout
        ImageLayout2 layout = new ImageLayout2();
        ImageTypeSpecifier its = reader.getImageTypes(0).next();
        layout.setColorModel(its.getColorModel()).setSampleModel(its.getSampleModel());
        layout.setMinX(0).setMinY(0).setWidth(reader.getWidth(0)).setHeight(reader.getHeight(0));
        layout.setTileGridXOffset(0).setTileGridYOffset(0).setTileWidth(reader.getTileWidth(0))
                .setTileHeight(reader.getTileHeight(0));
        setlayout(layout);
    }
View Full Code Here

        // therefore we create a fake coverage using the background values,
        // if provided (defaulting to 0), as well as the compute raster
        // bounds, envelope and grid to world.
        LOGGER.fine("Creating constant image for area with no data");
       
        final ImageLayout2 il= new ImageLayout2();
        il.setColorModel(rasterManager.defaultCM);
        Dimension tileSize= request.getTileDimensions();
        if(tileSize==null){
            tileSize=JAI.getDefaultTileSize();
        }

        il.setTileGridXOffset(0).setTileGridYOffset(0).setTileWidth((int)tileSize.getWidth()).setTileHeight((int)tileSize.getHeight());
        final RenderingHints renderingHints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT,il);
       
       
        final Number[] values = ImageUtilities.getBackgroundValues(rasterManager.defaultSM,
                backgroundValues);
        RenderedImage finalImage;
        if (ImageUtilities.isMediaLibAvailable()) {
            // create a constant image with a proper layout
            finalImage = ConstantDescriptor.create(Float.valueOf(rasterBounds.width),
                    Float.valueOf(rasterBounds.height), values, renderingHints);
            if (rasterBounds.x != 0 || rasterBounds.y != 0) {
                finalImage = TranslateDescriptor.create(finalImage, Float.valueOf(rasterBounds.x),
                        Float.valueOf(rasterBounds.y),
                        Interpolation.getInstance(Interpolation.INTERP_NEAREST), null);
            }

            // impose the color model and samplemodel as the constant operation does not take them
            // into account!
            if (rasterManager.defaultCM != null) {
                il.setColorModel(rasterManager.defaultCM);
                il.setSampleModel(rasterManager.defaultCM.createCompatibleSampleModel(
                        tileSize.width, tileSize.height));
                finalImage = FormatDescriptor.create(finalImage,
                        Integer.valueOf(il.getSampleModel(null).getDataType()), renderingHints);
            }
        } else {
            il.setWidth(rasterBounds.width).setHeight(rasterBounds.height);
            if (rasterBounds.x != 0 || rasterBounds.y != 0) {
                il.setMinX(rasterBounds.x).setMinY(rasterBounds.y);
            }
            // impose the color model and samplemodel as the constant operation does not take them
            // into account!
            if (rasterManager.defaultCM != null) {
                il.setColorModel(rasterManager.defaultCM);
                il.setSampleModel(rasterManager.defaultCM.createCompatibleSampleModel(
                        tileSize.width, tileSize.height));

            }
            final double[] bkgValues = new double[values.length];
            for (int i = 0; i < values.length; i++) {
                bkgValues[i] = values[i].doubleValue();
            }
            Assert.isTrue(il.isValid(ImageLayout.WIDTH_MASK | ImageLayout.HEIGHT_MASK
                    | ImageLayout.SAMPLE_MODEL_MASK));
            finalImage = MosaicDescriptor.create(new RenderedImage[0],
                    MosaicDescriptor.MOSAIC_TYPE_OVERLAY, null, null,
                    new double[][] { { CoverageUtilities.getMosaicThreshold(il.getSampleModel(null)
                            .getDataType()) } }, bkgValues, renderingHints);
        }
        if (footprintBehavior != null) {
            finalImage = footprintBehavior.postProcessBlankResponse(finalImage, renderingHints);
        }
View Full Code Here

            } else {
                hints.put(JAI.KEY_IMAGE_LAYOUT, layout);
            }
        } else if (bbox != null) {
            // New Layout Creation
            layout = new ImageLayout2();
            // Setting of the layout associated to the Final BoundingBox
            updateLayout(parameters, layout, bbox);

            if (hints == null) {
                hints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout);
View Full Code Here

            // Setting constant image to be warped as a ROI
            Rectangle dstBounds = op.getBounds();
           
            // Setting layout of the constant image
            ImageLayout2 layout = new ImageLayout2();
            int minx = (int) srcBounds.getMinX();
            int miny = (int) srcBounds.getMinY();
            int w = (int) srcBounds.getWidth();
            int h = (int) srcBounds.getHeight();
            layout.setMinX(minx);
            layout.setMinY(miny);
            layout.setWidth(w);
            layout.setHeight(h);
            RenderingHints hints = op.getRenderingHints();
            hints.add(new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout));
           
            final PlanarImage constantImage = ConstantDescriptor.create(new Float(w), new Float(h), new Byte[]{(byte)255}, hints);
           
View Full Code Here

        param.parameter("Source").setValue(coverage);
        param.parameter("warp").setValue(new WarpAffine(AffineTransform.getScaleInstance(2, 2)));
        param.parameter("Interpolation").setValue(interp);

        // Doing a first scale.
        final ImageLayout2 layout= new ImageLayout2(0,0,(int)(w / 2.0),(int)(h / 2.0));
        GridCoverage2D scaled = (GridCoverage2D) processor.doOperation(param, new Hints(JAI.KEY_IMAGE_LAYOUT,layout));
        assertEnvelopeEquals(coverage, scaled);
        RenderedImage scaledImage = scaled.getRenderedImage();
        assertEquals(w / 2.0, scaledImage.getWidth(),  EPS);
        assertEquals(h / 2.0, scaledImage.getHeight(), EPS);
View Full Code Here

            layout.unsetValid(ImageLayout.MIN_Y_MASK);
            layout.unsetValid(ImageLayout.WIDTH_MASK);
            layout.unsetValid(ImageLayout.HEIGHT_MASK);
        } else {
            // Create a new one
            layout = new ImageLayout2();
        }

        // Get the GridRange associated to the final GridGeometry to use
        GridEnvelope2D gridRange = parameters.finalGeometry.getGridRange2D();
View Full Code Here

    }

    /** Forces the provided {@link ColorModel} via the JAI ColorConvert operation. */
    private void forceColorModel(final ColorModel cm) {

        final ImageLayout2 il = new ImageLayout2(image);
        il.setColorModel(cm);
        il.setSampleModel(cm.createCompatibleSampleModel(image.getWidth(), image.getHeight()));
        final RenderingHints oldRi = this.getRenderingHints();
        final RenderingHints newRi = (RenderingHints) oldRi.clone();
        newRi.add(new RenderingHints(JAI.KEY_IMAGE_LAYOUT, il));
        setRenderingHints(newRi);
        image = ColorConvertDescriptor.create(image, cm, getRenderingHints());
View Full Code Here

   
    final ImageReadParam readParameters = new ImageReadParam();
    readParameters.setSourceRegion(new Rectangle(0,0,50,50));
   
    final AffineTransform2D gridToWorldTransform = granuleOverviewLevelDescriptor.getGridToWorldTransform();
    ImageLayout layout = new ImageLayout2().setTileGridXOffset(0).setTileGridYOffset(0).setTileHeight(10).setTileWidth(10);
    RenderingHints rHints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout);
    Hints hints = new Hints(rHints);
    final RenderedImage raster = granuleDescriptor.loadRaster(readParameters, 0, TEST_BBOX, gridToWorldTransform.inverse(),
            request, hints).getRaster();
    assertEquals(raster.getWidth(), 50);
View Full Code Here

TOP

Related Classes of org.jaitools.imageutils.ImageLayout2

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.