public void setAntialias( boolean antiAlias ) { if ( antiAlias ) { RenderingHints hints = new RenderingHints( RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON ); hints.add( new RenderingHints( RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY ) ); hints.add( new RenderingHints( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON ) ); // hints.add(new RenderingHints(RenderingHints.KEY_ALPHA_INTERPOLATION, // RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY)); gc.setRenderingHints( hints ); } }
public void setAntialias( boolean antiAlias ) { if ( antiAlias ) { RenderingHints hints = new RenderingHints( RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON ); hints.add( new RenderingHints( RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY ) ); hints.add( new RenderingHints( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON ) ); // hints.add(new RenderingHints(RenderingHints.KEY_ALPHA_INTERPOLATION, // RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY)); gc.setRenderingHints( hints ); } }
/** * Set a map of rendering hints to use for all images to be computed by this class. This method * applies only to the next images to be computed; images already computed before this method * call (if any) will not be affected. * * <p>If <code>hints</code> is null we won't modify this list. * * @return This ImageWorker * @see #setRenderingHint(RenderingHint) */ public final ImageWorker setRenderingHints(final RenderingHints hints) { if (commonHints == null) { commonHints = new RenderingHints(null); } if (hints != null) { commonHints.add(hints); } return this; }
/** * Sets a rendering hint tile to use for all images to be computed by this class. This method * applies only to the next images to be computed; images already computed before this method * call (if any) will not be affected. * * <p>Some common examples: * * <p> * * <ul> * <li><code>setRenderingHint({@linkplain JAI#KEY_TILE_CACHE}, null)</code> disables completly * the tile cache. * <li><code>setRenderingHint({@linkplain #TILING_ALLOWED}, Boolean.FALSE)</code> forces all * operators to produce untiled images. * </ul> * * @return This ImageWorker */ public final ImageWorker setRenderingHint(final RenderingHints.Key key, final Object value) { if (commonHints == null) { commonHints = new RenderingHints(null); } commonHints.add(new RenderingHints(key, value)); return this; }
/** Creates a new image worker with the same hints but a different image. */ private ImageWorker fork(final RenderedImage image) { final ImageWorker worker = new ImageWorker(image); if (commonHints != null && !commonHints.isEmpty()) { RenderingHints hints = new RenderingHints(null); hints.add(worker.commonHints); worker.commonHints = hints; } return worker; }
private void updateLocalHints(Hints hints, RenderingHints localHints) { if (hints != null && hints.containsKey(JAI.KEY_TILE_CACHE)) { final Object cache = hints.get(JAI.KEY_TILE_CACHE); if (cache != null && cache instanceof TileCache) localHints.add(new RenderingHints(JAI.KEY_TILE_CACHE, (TileCache) cache)); } if (hints != null && hints.containsKey(JAI.KEY_TILE_SCHEDULER)) { final Object scheduler = hints.get(JAI.KEY_TILE_SCHEDULER); if (scheduler != null && scheduler instanceof TileScheduler) localHints.add( new RenderingHints(JAI.KEY_TILE_SCHEDULER, (TileScheduler) scheduler)); } }
hints.add(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY)); hints.add(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)); hints.add(new RenderingHints(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC));
layout.setTileHeight(tileDimensions.height).setTileWidth(tileDimensions.width); localHints.add(new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout)); localHints.add(ImageUtilities.BORDER_EXTENDER_HINTS); // default BorderExtender be = Utils.getBorderExtenderHint(responseHints); if (be != null) { localHints.add(new RenderingHints(JAI.KEY_BORDER_EXTENDER, be)); localHints.add(jaiHints); localHints.add(new RenderingHints(ImageWorker.FORCE_MOSAIC_ROI_PROPERTY, true));
/** 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); // Setting the parameter blocks ParameterBlock pb = new ParameterBlock(); pb.setSource(image, 0); pb.set(cm, 0); pb.set(roi, 1); pb.set(nodata, 2); if (isNoDataNeeded()) { if (background != null && background.length > 0) { // Elaborating the final NoData value if (background.length != cm.getNumColorComponents()) { throw new IllegalArgumentException("Wrong DestinationNoData value defined"); } pb.set(background, 3); } } image = JAI.create("ColorConvert", pb, getRenderingHints()); // restore RI this.setRenderingHints(oldRi); // invalidate stats invalidateStatistics(); }
inputWorker.getRenderedImage().getHeight())); RenderingHints localHints = hints.clone(); localHints.add(new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout));
@Test public void testCurvePolygons() throws Exception { File property = new File(TestData.getResource(this, "curvepolygons.properties").toURI()); PropertyDataStore ds = new PropertyDataStore(property.getParentFile()); SimpleFeatureSource fs = ds.getFeatureSource("curvepolygons"); ReferencedEnvelope bounds = fs.getBounds(); bounds.expandBy(1, 1); Style style = RendererBaseTest.loadStyle(this, "fillSolid.sld"); MapContent mc = new MapContent(); mc.addLayer(new FeatureLayer(fs, style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setMapContent(mc); RenderingHints hints = new RenderingHints(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON); hints.add(new RenderingHints(KEY_STROKE_CONTROL, VALUE_STROKE_PURE)); renderer.setJava2DHints(hints); BufferedImage image = RendererBaseTest.showRender("Curved polygons", renderer, TIME, bounds); File reference = new File( "./src/test/resources/org/geotools/renderer/lite/test-data/curvedPolygons.png"); ImageAssert.assertEquals(reference, image, 100); }
@Test public void testCurveLines() throws Exception { File property = new File(TestData.getResource(this, "curvelines.properties").toURI()); PropertyDataStore ds = new PropertyDataStore(property.getParentFile()); SimpleFeatureSource fs = ds.getFeatureSource("curvelines"); ReferencedEnvelope bounds = fs.getBounds(); bounds.expandBy(1, 1); Style style = RendererBaseTest.loadStyle(this, "lineGray.sld"); MapContent mc = new MapContent(); mc.addLayer(new FeatureLayer(fs, style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setMapContent(mc); RenderingHints hints = new RenderingHints(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON); hints.add(new RenderingHints(KEY_STROKE_CONTROL, VALUE_STROKE_PURE)); renderer.setJava2DHints(hints); BufferedImage image = RendererBaseTest.showRender("Curved lines", renderer, TIME, bounds); File reference = new File( "./src/test/resources/org/geotools/renderer/lite/test-data/curvedLines.png"); ImageAssert.assertEquals(reference, image, 100); } }
newRi.add(new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout)); try { setRenderingHints(newRi);
RenderingHints localHints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout); if (hints != null) { localHints.add(hints);
DataBuffer.TYPE_BYTE)); RenderingHints localHints = hints.clone(); localHints.add(new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout));
localHints.add(ImageUtilities.BORDER_EXTENDER_HINTS); ImageWorker worker = new ImageWorker(raster).setRenderingHints(localHints); return worker.affine(
hints.add(parameters.hints); // May overwrite the image layout we have just set. } else { hints = parameters.hints;
layout.setTileHeight(sampleModel.getWidth()) .setTileWidth(sampleModel.getHeight()); hints.add(new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout));