Package org.geotools.image

Examples of org.geotools.image.ImageWorker


        assertTrue(indexed.getColorModel() instanceof IndexColorModel);
        IndexColorModel icm = (IndexColorModel) indexed.getColorModel();
        assertEquals(4, icm.getMapSize()); //Black background, white fill, light gray fill, dark gray fill = 4 colors
       
        // check image not black
        ImageWorker iw = new ImageWorker(indexed).forceComponentColorModel().intensity();
        double[] mins = iw.getMinimums();
        double[] maxs = iw.getMaximums();
        boolean result=true;
        for(int i=0;i<mins.length;i++){
          result=mins[i]==maxs[i]?false:result;
        }
        assertTrue(result);
View Full Code Here


        /*
         * Get the source coverage and build the cropped envelope.
         */
        final GridCoverage2D source = EXAMPLES.get(2).view(ViewType.NATIVE);
        final Envelope envelope = source.getEnvelope();
        final RenderedImage rgbImage= new ImageWorker(source.getRenderedImage()).forceComponentColorModel().getRenderedImage();
        final GridCoverage2D newCoverage=CoverageFactoryFinder.getGridCoverageFactory(null).create("sample", rgbImage, envelope);
        assertTrue(newCoverage.getNumSampleDimensions()==3);
       
        /*
         * Do the crop without conserving the envelope.
View Full Code Here

        /*
         * Get the source coverage and build the cropped envelope.
         */
        final GridCoverage2D source = EXAMPLES.get(2).view(ViewType.NATIVE);
        final Envelope envelope = source.getEnvelope();
        final RenderedImage rgbImage= new ImageWorker(source.getRenderedImage()).forceComponentColorModel().getRenderedImage();
        final SampleModel sm=rgbImage.getSampleModel();
        final ColorModel cm=rgbImage.getColorModel();
    final int numBands = sm.getNumBands();
    final GridSampleDimension[] bands = new GridSampleDimension[numBands];
    // setting bands names.
View Full Code Here

        /*
         * Get the source coverage and build the cropped envelope.
         */
        final GridCoverage2D source = EXAMPLES.get(4).view(ViewType.NATIVE);
        final Envelope envelope = source.getEnvelope();
        final RenderedImage rgbImage= new ImageWorker(source.getRenderedImage()).forceComponentColorModel().getRenderedImage();
        final GridCoverage2D newCoverage=CoverageFactoryFinder.getGridCoverageFactory(null).create("sample", rgbImage, envelope);
        assertEquals(1,newCoverage.getNumSampleDimensions());
       
        /*
         * Do the crop without conserving the envelope.
View Full Code Here

        boolean alphaChannel = true;

        for (int i = 0; i < numSources; i++) {
            RenderedImage img = rasters[i];
            // ImageWorker to use for elaborating each raster
            ImageWorker w = new ImageWorker(img);
            // I have to force going to ComponentColorModel in
            // case the image is indexed.
            if (img.getSampleModel() instanceof MultiPixelPackedSampleModel
                    || img.getColorModel() instanceof IndexColorModel) {
                w.forceComponentColorModel();
                img = w.getRenderedImage();
            }
            boolean hasAlpha = img.getColorModel() != null ? img.getColorModel().hasAlpha() : false;
            if (hasAlpha) {
                alphaChannel |= hasAlpha;
                alpha[i] = w.retainLastBand().getPlanarImage();
            }
        }
        // If at least one image contains Alpha channel, it is used for the mosaic
        if (alphaChannel) {
            block.setParameter("sourceAlpha", alpha);
View Full Code Here

    @Test
    public void test2BandsBug() {
        // build a transparent image
        BufferedImage image = new BufferedImage(256,256,BufferedImage.TYPE_BYTE_GRAY);
        image=new ImageWorker(image).addBand(image, true).getBufferedImage();
       
       
        // create a palette out of it
        CustomPaletteBuilder builder = new CustomPaletteBuilder(image, 256, 2,2, 1);
        builder.buildPalette();
View Full Code Here

        assertTrue(indexed.getColorModel() instanceof IndexColorModel);
        IndexColorModel icm = (IndexColorModel) indexed.getColorModel();
        assertEquals(4, icm.getMapSize()); //Black background, white fill, light gray fill, dark gray fill = 4 colors
       
        // check image not black
        ImageWorker iw = new ImageWorker(indexed).forceComponentColorModel().intensity();
        double[] mins = iw.getMinimums();
        double[] maxs = iw.getMaximums();
        boolean result=true;
        for(int i=0;i<mins.length;i++){
          result=mins[i]==maxs[i]?false:result;
        }
        assertTrue(result);
View Full Code Here

        assertTrue(indexed.getColorModel() instanceof IndexColorModel);
        IndexColorModel icm = (IndexColorModel) indexed.getColorModel();
        assertEquals(4, icm.getMapSize()); // Black background, white fill, light gray fill, dark gray fill = 4 colors

        // check image not black
        ImageWorker iw = new ImageWorker(indexed).forceComponentColorModel().intensity();
        double[] mins = iw.getMinimums();
        double[] maxs = iw.getMaximums();
        boolean result = true;
        for (int i = 0; i < mins.length; i++) {
            result = mins[i] == maxs[i] ? false : result;
        }
        assertTrue(result);
View Full Code Here

             getDescriptor(OperationDescriptor.class, "org.geotools.ColorReduction"));
        ParameterBlockJAI pbj = new ParameterBlockJAI("org.geotools.ColorReduction");
        // I will tile the image in 4 tiles and force parallelism here
        JAI.getDefaultInstance().getTileScheduler().setParallelism(4);
        pbj.addSource(
            new ImageWorker(image).
              setRenderingHint(JAI.KEY_IMAGE_LAYOUT,
                       new ImageLayout(image).setTileGridXOffset(0).setTileGridYOffset(0).setTileHeight(64).setTileWidth(64)
            ).tile().getRenderedImage()
        );
        pbj.setParameter("numColors", 255);
        pbj.setParameter("alphaThreshold", 1);
        pbj.setParameter("subsampleX", 1);
        pbj.setParameter("subsampleY", 1);
        indexed = JAI.create("org.geotools.ColorReduction", pbj);
        PlanarImage.wrapRenderedImage(indexed).getTiles();
        assertTrue(indexed.getColorModel() instanceof IndexColorModel);

        // check that we get the same results
        assertEquals(indexed.getColorModel(), icm);
        icm = (IndexColorModel) indexed.getColorModel();
       
        // make sure we have 4 colors + transparent one
        assertEquals(5, icm.getMapSize());
        assertEquals(5, icm.getMapSize());
       
       
        //
        // now use the inversion of color
        //
        assertNotNull((OperationDescriptor)
              JAI.getDefaultInstance().getOperationRegistry().
                    getDescriptor(OperationDescriptor.class, "org.geotools.ColorInversion"));
        pbj = new ParameterBlockJAI("org.geotools.ColorInversion");
        pbj.addSource(
            new ImageWorker(image).
              setRenderingHint(JAI.KEY_IMAGE_LAYOUT,
                       new ImageLayout(image).setTileGridXOffset(0).setTileGridYOffset(0).setTileHeight(64).setTileWidth(64)
            ).tile().getRenderedImage()
        );
        pbj.setParameter("quantizationColors", InverseColorMapRasterOp.DEFAULT_QUANTIZATION_COLORS);
View Full Code Here

        final RenderedImage image) throws IllegalStateException {
        Utilities.ensureNonNull("image", image);
        if(transparentColor==null){
            return image;
        }
        final ImageWorker w = new ImageWorker(image);
        if (image.getSampleModel() instanceof MultiPixelPackedSampleModel){
            w.forceComponentColorModel();
        }
        return w.makeColorTransparent(transparentColor).getRenderedImage();
    }
View Full Code Here

TOP

Related Classes of org.geotools.image.ImageWorker

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.