Jasper + ireport +动态图像创建

时间:2012-01-09 10:50:49

标签: jasper-reports ireport

我试图生成一张图片 它应该包含一个从mysql BLOB字段加载的基本图片(JPG,PNG,...) 在这张照片上,我想在x / y画一些圆圈。
在第一步中,我使用了Ireports UltimateGuide中的示例,它通过JRAbstractSvgRenderer接口描述了SVG渲染,如下所示:

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 Image字段中显示它。 我还可以在ireport Textfield中显示BLOB字段。

但我无法加载Blob字段,在其中绘制内容并在图像字段中显示。

有人有想法吗?

谢谢你,祝你好运 基督教

P.S。:我正在使用Ireport 4.1.3和netBeans 7.0.1

1 个答案:

答案 0 :(得分:0)

这里是下面提到的评论作为答案,视需要。

解决

现在我在Ireport中使用了2个ImageBoxes

1 - >图片来自BLOB Field

2 - > “标记掩码”(通过Java生成)

这是通过Alpha通道生成透明蒙版的技巧

标记被排除在透明度之外! : - )