Bildformat

Hi,

Wenn ich mir ein
BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
Mache damit ein
Graphics2D g = img.createGraphics();
erstelle und ein
g.setColor(Color.red);
g.drawLine(5,5, 50,50);
Das ganze in einem Servlet mittels
response.setContentType(„image/jpg“);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());
encoder.encode(img);
ausgebe
habe ich eine weichgezeichnete Linie in meiner Grafik.

Wie bekomm ich die Weg?
Wenn ich einfach
response.setContentType(„image/gif“);
einsetze hab ich zwar das GIF format beim Speichern aber immernoch diese weichzeichnungseffekte.
Wenn ich eine
g.drawLine(5,5,5,50);
zeichne passiert dasselbe.
Ich will einfach nur einen geraden strich in einer Grafik erzeugen so wie man es in HTML mit

sehen würde.
Kann mir jemand sagen, wie das geht?

cu Desian

Moin

Kann mir jemand sagen, wie das geht?

den Graphics-Context umstellen. Dazu gibts die java.awt.RenderingHints und java.awt.Stroke.

cu

Die Lösung
Nur falls es noch jemanden interressiert:

response.setContentType("image/png");
BufferedImage img = createImageDynamically(Color.BLACK);
Iterator iter = ImageIO.getImageWritersByFormatName("png");
ImageWriter writer = (ImageWriter)iter.next();
writer.setOutput(new MemoryCacheImageOutputStream(response.getOutputStream()));
writer.write(img);

cu Desian