Hey Leute...
mal wieder ne Frage an der ich mir nun schon eine Weile die Zähne ausbeiße.
Habe mir eine Java Anwendung geschrieben, die mir einen Ordner mit Bildern auf verschiedene Größen skalieren soll.
Das funktioniert mittlerweile alles schon recht zufriedenstellend. Nur - jetzt kommt der Haken - seit ich mit Java solche Dinge mache, habe ich immer das Problem, das das skalierte Bild zu stark scharf gezeichnet ist.
Ich habe mal zwei Bilder in den Anhang gehängt. Das eine (1) ist mit Java, das andere mit Photoshop (1b) skaliert. Ich möchte einfach, das es nicht so hart aussieht - gibt's da ne Möglichkeit?
Edit:
Sry, hab den Quellcode vergessen. So sklaiere ich moment:
mal wieder ne Frage an der ich mir nun schon eine Weile die Zähne ausbeiße.
Habe mir eine Java Anwendung geschrieben, die mir einen Ordner mit Bildern auf verschiedene Größen skalieren soll.
Das funktioniert mittlerweile alles schon recht zufriedenstellend. Nur - jetzt kommt der Haken - seit ich mit Java solche Dinge mache, habe ich immer das Problem, das das skalierte Bild zu stark scharf gezeichnet ist.
Ich habe mal zwei Bilder in den Anhang gehängt. Das eine (1) ist mit Java, das andere mit Photoshop (1b) skaliert. Ich möchte einfach, das es nicht so hart aussieht - gibt's da ne Möglichkeit?
Edit:
Sry, hab den Quellcode vergessen. So sklaiere ich moment:
Java:
public File GetScaledImage(String filename, String tmpname, int longestside) throws IOException
{
PlanarImage source = JAI.create("fileload", filename);
int imgwidth = source.getWidth();
int imgheight = source.getHeight();
//Größe berechnen
boolean tall = (imgheight > imgwidth);
float modifier = longestside / (float) (tall ? imgheight : imgwidth);
ParameterBlock param = new ParameterBlock();
param.addSource(source);
param.add(modifier); //Breite in %
param.add(modifier); //Höhe in %
param.add(0.0f);
param.add(0.0f);
param.add(new InterpolationBicubic(11)); //Interpolation
//Verkleinertes Zeilbild erstellen
PlanarImage dst = JAI.create("scale", param);
//In Datei schreiben
FileOutputStream os = new FileOutputStream(new File(tmpname));
JAI.create("encode", dst, os, "JPEG", null);
os.close();
return new File(tmpname);
}
Anhänge
Zuletzt bearbeitet: