2012-01-09 9 views
1

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

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 .: I'm с помощью IReport 4.1.3 с Netbeans 7.0.1

+0

Hi @all. -> Решено I'm с помощью 2 ImageBoxes в IReport 1 -> Picture 1 -> "Маска Маркер" (генерируется с помощью Java) (здесь это трюк, чтобы создать прозрачную маску с помощью альфа-канала) BR – ChristianNRW

+0

Это интересный вопрос. Не могли бы вы разместить свой ответ в качестве ответа, а не как комментарий? – mdahlman

ответ

0

здесь ниже mentionend комментарий как ответ, как хотелось бы.

решаемые

Теперь i'm с использованием 2 ImageBoxes в IReport

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

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

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

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

Смежные вопросы