List of usage examples for org.apache.wicket.markup.html.image.resource BufferedDynamicImageResource BufferedDynamicImageResource
public BufferedDynamicImageResource(String format)
From source file:org.geoserver.web.admin.PreviewFont.java
License:Open Source License
/** * Generates the preview image for this font * /* w w w. ja v a 2 s. com*/ * @return an image resource */ private BufferedDynamicImageResource createPreviewImage() { // convert into integer pixels, set the font and turn on antialiasing BufferedImage bi = new BufferedImage(PREVIEW_IMAGE_WIDTH, PREVIEW_IMAGE_HEIGHT, BufferedImage.TYPE_INT_ARGB); Graphics2D graphics2D = bi.createGraphics(); graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics2D.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); graphics2D.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); graphics2D.setFont(font); FontMetrics fontMetrics = graphics2D.getFontMetrics(); int stringHeight = fontMetrics.getAscent(); // background/foreground colours graphics2D.setBackground(Color.WHITE); graphics2D.setPaint(Color.BLACK); // write the name of the font to the graphic. Use the same rendering method used by the // WMS (more convoluted, but the only one that can be actually centered within a halo) GlyphVector gv = font.createGlyphVector(graphics2D.getFontRenderContext(), PREVIEW_TEXT.toCharArray()); final AffineTransform at = AffineTransform.getTranslateInstance(2, PREVIEW_IMAGE_HEIGHT / 2 + stringHeight / 4); Shape sample = at.createTransformedShape(gv.getOutline()); graphics2D.fill(sample); // create the image BufferedDynamicImageResource generatedImage = new BufferedDynamicImageResource("png"); generatedImage.setImage(bi); generatedImage.setCacheable(true); return generatedImage; }