Toon posts:

[JSP] Dynamische plaatjes lukken niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Via deze tutorial probeer ik dynamische headings te maken,zondat datik steeds in photoshop een plaatje moet maken (zodat ik dus af kan wijken van de standaard fonts)..

Alleen in plaats van een plaatje krijg ik het volgende als output:

‰PNG IHDR:ÕëË—IDATxÚíV¿Ëqa>%I’À ‹ ’”$d5HJFY$“¤$$eLÊ ùd°$½½)dEII’Þïúºuz:çðRï×G½O©»çÜ÷å:÷ë>Ü×[î—î/Ý÷¦;™L,‹\.7¯N

(en nog veel meer van dit soort spul ;))

Waar kan dit aan liggen?? de code is rechtstreekse copy paste, maar het lijkt alsof mijn plaatje niet (goed) gerenderd wordt..

  • André
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:23

André

Analytics dude

Heb je iets online staan? Stuur je bijvoorbeeld wel de juiste mime-type mee?

Verwijderd

Topicstarter
Heb helaas niks online staan omdat ik geen online jsp server beschikbaar heb.. maar dit is de code waar het om draait:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
String text = component_Title;
    String font_file = "/Static/Fonts/Starsale_210.ttf";
    
    font_file = request.getRealPath(font_file);
    float size = 20.0f;
    
    Color background = Color.white;
    Color color = Color.black;

    Font font = Font.createFont(Font.TRUETYPE_FONT, new FileInputStream(font_file));
    font = font.deriveFont(size);
    
    BufferedImage buffer = new BufferedImage(1,1,BufferedImage.TYPE_INT_RGB);
    
    Graphics2D g2 = buffer.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    FontRenderContext fc = g2.getFontRenderContext();
    Rectangle2D bounds = font.getStringBounds(text,fc);
    
    // calculate the size of the text
    int width = (int) bounds.getWidth();
    int height = (int) bounds.getHeight();
    
    // prepare some output
    buffer = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    g2 = buffer.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g2.setFont(font);
    
    // actually do the drawing
    g2.setColor(background);
    g2.fillRect(0,0,width,height);
    g2.setColor(color);
    g2.drawString(text,0,(int)-bounds.getY());
    
    // set the content type and get the output stream
    response.setContentType("image/png");
    OutputStream os = response.getOutputStream();
    
    // output the image as png
    ImageIO.write(buffer, "png", os);
    os.close();


Er wordt dus iig wel een MIME type meegestuurd (image/png)

Verwijderd

Topicstarter
niemand een idee??