Джаспер + ireport + Создание динамического изображения - PullRequest
1 голос
/ 09 января 2012

Я пытаюсь создать картинку.
Он должен содержать базовую картинку (JPG, PNG, ...), которая загружается из поля mysql BLOB
На этой картинке я хотел бы нарисовать несколько кругов на х / у ...
На первом шаге я использовал пример из Ireports UltimateGuide, который описывает рендеринг SVG через интерфейс JRAbstractSvgRenderer следующим образом:

public class drawpicture extends JRAbstractSvgRenderer {

    String drawstring = "something";

    public void render(Graphics2D g2d, Rectangle2D rect) throws JRException {
        System.out.println("render");
        AffineTransform savedTrans = g2d.getTransform();
        Font savedFont = g2d.getFont();
        // Paint a nice background...
        g2d.setPaint(new GradientPaint(0, 0, Color.ORANGE,
                0, (int) rect.getHeight(), Color.PINK));
        g2d.fillRect(0, 0, (int) rect.getWidth(), (int) rect.getHeight());
        Font myfont = new Font("Arial Black", Font.PLAIN, 50);
        g2d.setFont(myfont);
        FontRenderContext frc = g2d.getFontRenderContext();
        String text = drawstring;
        TextLayout textLayout = new TextLayout(text, myfont, frc);
        Shape outline = textLayout.getOutline(null);
        Rectangle r = outline.getBounds();
        // Translate the graphic to center the text
        g2d.translate(
                (rect.getWidth() / 2) - (r.width / 2),
                rect.getHeight() / 2 + (r.height / 2));
        g2d.setColor(Color.BLACK);
        g2d.draw(outline);
        // Restore the Graphics2D affine transform
        g2d.setFont(savedFont);
        g2d.setTransform(savedTrans);
    }
}

Это работает нормально, так что я могу нарисовать изображение через интерфейс Java и показать его в поле Изображение Ireports. Я также могу показать поле BLOB в текстовом поле ireport.

Но я не могу загрузить поле Blob, нарисовать что-то в нем и показать его в поле изображения.

У кого-нибудь была идея?

Спасибо и всего наилучшего Christian

P.S .: Я использую Ireport 4.1.3 с NetBeans 7.0.1

1 Ответ

0 голосов
/ 10 января 2012

ниже приведен комментарий в качестве ответа.

решаемые

Теперь я использую 2 ImageBox в Ireport

1 -> Изображение с поля BLOB

2 -> «Маркерная маска» (генерируется с помощью Java)

Вот прием для создания прозрачной маски через альфа-канал

Маркер исключен из прозрачности !! : -)

...