Package javax.media.jai

Examples of javax.media.jai.RenderedImageList


        }
        // the original image should always be a list of rendered images unless metatiling is
        // activated
        int numfiles = 1;
        final RenderedImageList ril;
        if (originalImage instanceof RenderedImageList) {
            // convert to list
            ril = (RenderedImageList) originalImage;

            // get number of images
            numfiles = ril.size();
        } else {
            ril = new RenderedImageList(Arrays.asList(originalImage));
        }
        if (numfiles == 1 || !animatedGIF) {
            if (LOGGER.isLoggable(Level.FINE))
                LOGGER.fine("Preparing to write a gif...");
            //
            // Now the magic
            //
            try {
                originalImage = applyPalette(originalImage, mapContent, MIME_TYPE, false);
                ImageWorker iw = new ImageWorker(originalImage);
                iw.writeGIF(outStream, "LZW", 0.75f);
                RasterCleaner.addImage(iw.getRenderedImage());
            } catch (IOException e) {
                throw new ServiceException(e);
            }
            return;
        }

        // check the number is >1
        if (numfiles <= 0) {
            throw new ServiceException("The number of frames for this GIF is less than 1");
        }

        final GIFImageWriter gifWriter = new GIFImageWriter(ORIGINATING_PROVIDER);
        // write param
        final ImageWriteParam param = gifWriter.getDefaultWriteParam();
        param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
        param.setCompressionType("LZW");
        param.setCompressionQuality(0.75f);

        ImageOutputStream otStream = null;
        List<RenderedImage> images = new ArrayList<RenderedImage>();
        try {
            otStream = ImageIO.createImageOutputStream(outStream);
            gifWriter.setOutput(otStream);
            gifWriter.prepareWriteSequence(null);

            // gif params
            final GetMapRequest request = (GetMapRequest) mapContent.getRequest();
            final Boolean loopContinuosly = (request.getFormatOptions().get("gif_loop_continuosly") != null ?
                    Boolean.valueOf((String)request.getFormatOptions().get("gif_loop_continuosly")) : wms.getLoopContinuously());
            final Integer delay = (request.getFormatOptions().get("gif_frames_delay") != null ?
                    Integer.valueOf((String) request.getFormatOptions().get("gif_frames_delay")) : wms.getFramesDelay());

            // check value
            if (delay <= 0)
                throw new ServiceException("Animate GIF delay invalid: " + delay);

            //
            // Getting input files
            //
            for (int i = 0; i < numfiles; i++) {
                if (LOGGER.isLoggable(Level.FINE))
                    LOGGER.fine("Writing image " + i);
                // get the image
                RenderedImage ri = (RenderedImage) ril.get(i);
                // convert it to gif compatible
                ri = applyPalette(ri, mapContent, MIME_TYPE, false);
                if (ri != null) {
                    // prepare metadata and write param
                    final IIOMetadata imageMetadata = gifWriter.getDefaultImageMetadata(
View Full Code Here


        List<RenderedImage> list = images.get();
        if (list != null) {
            images.remove();
            for (RenderedImage image : list) {
                if (image instanceof RenderedImageList) {
                    RenderedImageList ril = (RenderedImageList) image;
                    for (int i = 0; i < ril.size(); i++) {
                        disposeImage((RenderedImage) ril.get(i));
                    }
                } else {
                    disposeImage(image);
                }
            }
View Full Code Here

                mapContent.layers().clear();
               
                // collect the layer
                images.add(((RenderedImageMap)map).getImage());
            }
            RenderedImageList imageList = new RenderedImageList(images);
            return new  RenderedImageMap(mapContent, imageList , map.getMimeType());
        } else if(numElevations > 1 && isMultivaluedSupported) {
            WebMap map = null;
            List<RenderedImage> images = new ArrayList<RenderedImage>();
            for (Object currentElevation : elevations){
                map = executeInternal(mapContent, request, delegate, times, Arrays.asList(currentElevation));
               
                // remove layers to start over again
                mapContent.layers().clear();
               
                // collect the layer
                images.add(((RenderedImageMap)map).getImage());
            }
            RenderedImageList imageList = new RenderedImageList(images);
            return new  RenderedImageMap(mapContent, imageList , map.getMimeType());
        } else {
            return executeInternal(mapContent, request, delegate, times, elevations);   
        }
View Full Code Here

TOP

Related Classes of javax.media.jai.RenderedImageList

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.