Thumbnails erstellt: Total schlechte Qualität:

Status
Nicht offen für weitere Antworten.
T

theomega

Gast
Hallo Leute,
ich habe in Java mit IOImage eine Funktion geschrieben um Thumbnails von Bilder zu erstellen. Leider ist mir aufgefallen das trotz bessten Qualitäts-Einstellungen die Thumbnails nur sehr bescheiden aussehen:

Ausgangsbild:
404_035_ls_640x480.jpg


Thumbnail:
wthumb.jpg


Wenn ich dagegen vom gleichen Bild mit einer Software wie IrfanView ein THumbnail erstelle, dann ist die Qualität wesentlich besser, es kann also nicht am Ausgangsmaterial liegen:
rthumb.jpg


der Code ist dieser hier:
Code:
	public static boolean createThumbnail(BufferedImage image, String format, File file, int dim) {
		try {
			int tw;
			int th;
			if (image.getHeight()>image.getWidth()) {
				th = dim;
				tw = (int)Math.round((double)image.getWidth()/(double)image.getHeight()*(double)dim);
			}
			else {
				th = (int)Math.round((double)image.getHeight()/(double)image.getWidth()*(double)dim);
				tw = dim;
			}
			
			BufferedImage thumb = new BufferedImage(tw,th, BufferedImage.TYPE_INT_RGB);
			Graphics2D g2d = thumb.createGraphics();
			g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING ,RenderingHints.VALUE_COLOR_RENDER_QUALITY);
	g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING  ,RenderingHints.VALUE_ANTIALIAS_ON );	g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
			g2d.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
			g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
			
			g2d.drawImage(image,0,0,tw,th,null);
			
			OutputStream tfos = new FileOutputStream(file);
			ImageIO.write(thumb,format,tfos);
			
			tfos.flush();
			tfos.close();
			
			if (file.exists() && file.length()>0) {
				return(true);
			}
			else {
				return(false);
			}
		}
		catch (Exception e){
			LOGGER.exception(e);
			return(false);
		}
	}

Wer kann mir sagen woran das liegt? Da muss doch mehr drin sein, oder nicht?

Danke
TO
 

Wildcard

Top Contributor
Versuch mal
Code:
       BufferedImage image;
        Image imageScaled = image.getScaledInstance(100,100, BufferedImage.SCALE_SMOOTH);
 

Lim_Dul

Top Contributor
Reicht nicht ein:

Code:
thumb = image.getScaledInstance(width, height, Image.SCALE_SMOOTH);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Bilder als "Thumbnails" laden - Performance Allgemeine Java-Themen 6
m@nu Thumbnails schneller erstellen Allgemeine Java-Themen 2
E JPEG Datei Größe und Qualität ändern (für Thumbnails) Allgemeine Java-Themen 4
P Slideshow mit thumbnails Allgemeine Java-Themen 2
berserkerdq2 SceneBuilder GUI erstellt, nun muss ich noch ein Polygon erstellen, ist die Connection möglich? Allgemeine Java-Themen 3
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
N 3D Grafik erstellt Allgemeine Java-Themen 5
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
ZH1896ZH Best Practice Wie erstellt man am besten einen Kalender? Allgemeine Java-Themen 3
S createTempFile erstellt keine temporäre Datei Allgemeine Java-Themen 13
Elyt Compiler-Fehler Datei kann nicht erstellt werden. Die Syntax für den Dateinamen etc. ist falsch. Allgemeine Java-Themen 2
coolian Swing erstellt fillreckt immmer ein neues object Allgemeine Java-Themen 13
A Java erstellt Script und konvertier zu EXE Allgemeine Java-Themen 4
MineJoke "Config" Datein wir bei neustart des Programms neu erstellt? Allgemeine Java-Themen 0
M Windows 98 - Mit welchem JDK (Version) kann noch Programm dafür erstellt werden Allgemeine Java-Themen 6
I Projekt wird nicht erstellt Allgemeine Java-Themen 2
G PrintWriter in .jar erstellt keine Datei Allgemeine Java-Themen 4
R Pdf öffnen, das von iText erstellt wurde Allgemeine Java-Themen 4
J Wie erstellt man die 'exe'-Dateien? Allgemeine Java-Themen 7
G Dateien löschen welche vor heute erstellt wurden? Allgemeine Java-Themen 7
Z Schwankung "Total Memory"? Allgemeine Java-Themen 8
medic NullPointer verwirrt mich total. Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben