# BufferedImage und jpg --> maximale Qualität



## GregorHeft (1. Nov 2007)

Hallo Forum, 
ich erzeuge in BufferedImage mit verschiedenen Zeichenroutinen, dass dann in ein jpg umgewandelt wird.  Ich hab mit dem JPEGEncoder schon die jpg Qualtität schonmal auf 1.0, also maximal gesetzt was schon mal gut aussieht. Welche Möglichkeiten habe ich noch innerhalb der BufferedImage Graphics Methoden (RenderingHints...) um eine maximale Qualität des Bildes zu erreichen. 

Da diese Bilder nicht in der DB gespeichert werden, dürfen die ruhig auch ein wenig größer werden.

Hintergrund ist, dass zB. eine schwarze SChrift (g.drawString...) auf einem blauen Hintergrund immer noch etwas verwischt aussieht.


----------



## Wildcard (1. Nov 2007)

Warum nimmst du auch ein verlustbehaftetes Format, wenn es dir auf Qualität ankommt?
Nimm eine Vektorgrafik, oder zumindest ein png.
Die Vektorgrafik würde ich empfehlen wenn die Sache skaliert und/oder gedruckt werden soll.


----------



## GregorHeft (1. Nov 2007)

Hm, also Vektorgrafik scheidet aus.
und png. wär ne möglichkeit. kann ich das genau erzeugen wie das jpg format


```
ImageIO.write(image, "jpg", stream);
 ImageIO.write(image, "png", stream);
```


----------



## Wildcard (1. Nov 2007)

GregorHeft hat gesagt.:
			
		

> Hm, also Vektorgrafik scheidet aus.


Darf man fragen warum? Die Bilder sind i.d.R. kleiner und qualitativ besser.


			
				GregorHeft hat gesagt.:
			
		

> und png. wär ne möglichkeit. kann ich das genau erzeugen wie das jpg format


ja


----------



## GregorHeft (1. Nov 2007)

Vektorgrafik scheidet aus, weil auf dem BufferedImage auch andere Bilder (jpg) sind.
Es handelt sich praktisch um eine Postkarte, wo eben jpg Bilder "draufgemalt" werden und zusätzlichen Text und grafische Objekte mit der graphics Methode darauf erzeugt werden. Und es geht nur darum, die durch die graphics Methoden gezeichneten Strings und Objekte für alle Farbhintergründe einigermaßen gleich gut aussehen zu lassen.


----------



## Wildcard (1. Nov 2007)

Postkarten werden doch normalerweise gedruckt?
Ein Drucker druckt Schrift auf andere Art und weise als ein Pixel Bild. Der Drucker löst höher auf als der Bildschirm -> Das Bild von Schrift sieht gedruckt immer schlechter aus als die Schrift direkt zu drucken.
Nimmst du hingegen SVG, bleibt die Schrift was sie ist und das Hintergrund Bild wird vom SVG verlinkt.
Eigentlich genau was du brauchst.


----------



## Guest (1. Nov 2007)

hm, ok aber wie handle ich das svg format in java ??


----------



## Wildcard (1. Nov 2007)

Apache Batik ist so ziemlich die vollständigste SVG Implementierung am Markt.


----------



## GregorHeft (1. Nov 2007)

ach mist, irgendwie kling mir das nach einer riesenumstellung. ich glaube nicht, dass ich das jetzt schaffe. werds wohl eher mal mit png versuchen. wenn du die druckergebnisse dann nicht zufriedenstellend sind, muss man halt später mal gucken ob man das svg irgendwie verwenden kann.


----------



## GregorHeft (1. Nov 2007)

Also ich habe nun das Format einfach mal mit "png" ersetzt und die Qualität ist so viel besser bei unwesentlicher dateigröße. so bin ich erst mal zufrieden. danke nochmal für den tip. dachte nicht dass ich einfach nur "jpg" durch "png" ersetzen muss.


----------

