Example usage for org.apache.wicket.markup.html.image.resource BufferedDynamicImageResource BufferedDynamicImageResource

List of usage examples for org.apache.wicket.markup.html.image.resource BufferedDynamicImageResource BufferedDynamicImageResource

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.image.resource BufferedDynamicImageResource BufferedDynamicImageResource.

Prototype

public BufferedDynamicImageResource(String format) 

Source Link

Document

Construct.

Usage

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;
}