baggrundsbillede vises ikke
hej der jeg har et problem med min servlet den skal generere et billede og sende det tilbage til "brugeren", men vær anden gang servletten loades kommer baggrunds billedede ikke meder der nogen der kan sige hvorfor??
package jsptags;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.awt.color.*;
import java.awt.RenderingHints.*;
import model.*;
public class GenerateJpeg extends GenericServlet{
public void service(ServletRequest request, ServletResponse response) throws IOException
{
Visitkort vk = (Visitkort) ((HttpServletRequest) request).getSession().getAttribute("Visitkort");
BufferedImage buffimg = new BufferedImage( vk.getWidth(), vk.getHøjde(), BufferedImage.TYPE_INT_RGB);
Graphics2D grafik = (Graphics2D) buffimg.getGraphics();
grafik.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = toolkit.getImage(vk.getBaggrund());
grafik.drawImage(image, 0, 0, null);
while (vk.NesteElement()){
TekstElement text = (TekstElement) vk.Hent();
Font font = new Font(text.getSkrifttype(), text.getTypografi(), text.getFontStr());
grafik.setFont(font);
Farve f= text.getFarve();
grafik.setColor(setCMYKColor((float) f.getC(), (float) f.getM(), (float) f.getY(), (float) f.getK()));
float fontMod = (float) 0.93; // DBQ.getFontMod(font.getFontName());
float yMod = vk.getHøjde() - text.getY();// - font.getSize();
grafik.drawString(text.getTekst(), text.getX(), yMod);
}
response.setContentType("image/jpeg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());
JPEGEncodeParam params = JPEGCodec.getDefaultJPEGEncodeParam(buffimg);
params.setQuality(1, true);
encoder.encode(buffimg, params);
}
//konvatere points til pixles
public float pToP(int i){
//har vedtaget at der er 88 pixel pr tomme på en gennemsnits skærm
return (float) i;//* 72/88;
}
// konvatere fra cmyk til RGB efter adobe spicifikation 1.3
private Color setCMYKColor(float c, float m, float y, float k){
float r, g, b;
c=c/100;
m=m/100;
y=y/100;
k=k/100;
r = ( c + k );
if( r > 1 )
r = 1;
g = ( m + k );
if( g > 1 )
g = 1;
b = ( y + k );
if( b > 1 )
b = 1;
return new Color( (int)( 255 * ( 1 - r ) ), (int)( 255 * ( 1 - g ) ), (int)( 255 * ( 1 - b ) ) );
}
}