public Java2DRenderContext( RenderingInfo info, Graphics2D graphics, OutputStream outputStream ) { this.graphics = graphics; this.outputStream = outputStream; renderer = new Java2DRenderer( graphics, info.getWidth(), info.getHeight(), info.getEnvelope(), info.getPixelSize() * 1000 ); textRenderer = new Java2DTextRenderer( renderer ); labelRenderer = new Java2DLabelRenderer( renderer, textRenderer ); rasterRenderer = new Java2DRasterRenderer( graphics ); tileRenderer = new Java2DTileRenderer( graphics, info.getWidth(), info.getHeight(), info.getEnvelope() ); }
public static RenderContext createInstance( RenderingInfo info, OutputStream outputStream ) { BufferedImage image = ImageUtils.prepareImage( info.getFormat(), info.getWidth(), info.getHeight(), info.getTransparent(), info.getBgColor() ); return createInstance( info, image, outputStream); }
List<String> queryLayers = map( fi.getQueryLayers(), CollectionUtils.<LayerRef> getToStringMapper() ); RenderingInfo info = new RenderingInfo( fi.getInfoFormat(), fi.getWidth(), fi.getHeight(), false, null, fi.getEnvelope(), 0.28, map ); String format = fi.getInfoFormat(); info.setFormat( format ); info.setFeatureCount( fi.getFeatureCount() ); info.setX( fi.getX() ); info.setY( fi.getY() ); LinkedList<String> headers = new LinkedList<String>(); Pair<FeatureCollection, LinkedList<String>> pair = new Pair<FeatureCollection, LinkedList<String>>(
private ImageRenderContext( RenderingInfo info, BufferedImage image, Graphics2D graphics, OutputStream outputStream ) { super( info, graphics, outputStream ); this.image = image; this.format = info.getFormat(); this.info = info; }
@Override public void serialize( RenderingInfo rinfo, BufferedImage img, OutputStream out ) throws IOException { if ( rinfo != null && rinfo.getEnvelope() != null ) { long ts, te; RasterGeoReference geoRef = create( OriginLocation.OUTER, rinfo.getEnvelope(), img.getWidth(), img.getHeight() ); ts = System.currentTimeMillis(); GeoTiffWriter.save( img, geoRef, out ); te = System.currentTimeMillis(); LOG.debug( "Encoding into {} duration {} ms", formatName, te - ts ); } else { LOG.debug( "Rendering without spatial information, because no envelope is availible. Using ImageIO" ); write( img, formatName, out ); } } }
public static RenderContext createInstance( RenderingInfo info, OutputStream outputStream ) { DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation(); Document document = domImpl.createDocument( "http://www.w3.org/2000/svg", "svg", null ); SVGGraphics2D graphics = new SVGGraphics2D( document ); graphics.setSVGCanvasSize( new Dimension( info.getWidth(), info.getHeight() ) ); return new SvgRenderContext( info, graphics, outputStream ); }
@Override public boolean close() throws IOException { try { graphics.dispose(); if ( outputStream != null ) { BufferedImage image = this.image; String format = this.format.substring( this.format.indexOf( "/" ) + 1 ); if ( format.equals( "x-ms-bmp" ) ) { format = "bmp"; } if ( format.equals( "png; subtype=8bit" ) || format.equals( "png; mode=8bit" ) ) { image = ColorQuantizer.quantizeImage( image, 256, false, false ); format = "png"; } if (info.getSerializer() != null){ info.getSerializer().serialize( info, image, outputStream ); } else { return write( image, format, outputStream ); } } } finally { closeQuietly( outputStream ); } return false; }
private LinkedList<String> doGetMap( GetMap getMap, Map<String, String> map, Version version, OutputStream stream ) throws OWSException, IOException { checkGetMap( version, getMap ); RenderingInfo info = new RenderingInfo( getMap.getFormat(), getMap.getWidth(), getMap.getHeight(), getMap.getTransparent(), getMap.getBgColor(), getMap.getBoundingBox(), getMap.getPixelSize(), map, imageSerializers.get( getMap.getFormat() ) ); RenderContext ctx = ouputFormatProvider.getRenderers( info, stream ); LinkedList<String> headers = new LinkedList<String>(); service.getMap( getMap, headers, ctx ); ctx.close(); return headers; }
@Override public RenderContext getRenderers( RenderingInfo info, OutputStream outputStream ) { if ( "image/svg+xml".equals( info.getFormat() ) ) { return SvgRenderContext.createInstance( info, outputStream ); } else { return new LazyImageRenderContext( info, outputStream ); } }