So verbessern Sie die Bildqualität nach der Größenänderung in Java
Eine erhebliche Verkleinerung eines Bildes kann oft zu einem spürbaren Qualitätsverlust führen. Durch die Anwendung eines „Teile-und-Herrsche“-Ansatzes können Sie dieses Problem jedoch entschärfen und sicherstellen, dass Ihre verkleinerten Bilder einen höheren Detaillierungsgrad beibehalten.
Teile-und-Herrsche-Methode:
Anstatt das Bild direkt auf seine endgültige Größe zu skalieren, unterteilen Sie den Vorgang in kleinere Schritte. Um beispielsweise die Größe eines 650x748-Bildes so zu ändern, dass es in 60x60 passt, skalieren Sie es zunächst auf 325x374 (50 % der Originalgröße). Skalieren Sie es dann wieder auf 162 x 187 (50 % der vorherigen Größe). Skalieren Sie es abschließend auf die Zielgröße von 60 x 60, was zu einer viel höheren Bildqualität führt, als wenn die Größenänderung in einem großen Schritt erfolgen würde.
Beispielcode:
public static BufferedImage getScaledInstanceToFit(BufferedImage img, Dimension size) { float scaleFactor = getScaleFactorToFit(img, size); return getScaledInstance(img, scaleFactor); } public static float getScaleFactorToFit(BufferedImage img, Dimension size) { float scale = 1f; if (img != null) { int imageWidth = img.getWidth(); int imageHeight = img.getHeight(); scale = getScaleFactorToFit(new Dimension(imageWidth, imageHeight), size); } return scale; } public static float getScaleFactorToFit(Dimension original, Dimension toFit) { float scale = 1f; if (original != null && toFit != null) { float dScaleWidth = getScaleFactor(original.width, toFit.width); float dScaleHeight = getScaleFactor(original.height, toFit.height); scale = Math.min(dScaleHeight, dScaleWidth); } return scale; }
Zusätzliche Tipps:
Das obige ist der detaillierte Inhalt vonWie kann die hohe Bildqualität nach dem Downscaling in Java aufrechterhalten werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!