Comment améliorer la qualité de l'image après le redimensionnement en Java
La réduction significative d'une image peut souvent entraîner une baisse notable de la qualité. Cependant, en adoptant une approche diviser pour régner, vous pouvez atténuer ce problème, en garantissant que vos images redimensionnées conservent un niveau de détail plus élevé.
Méthode Diviser pour régner :
Au lieu de redimensionner l'image directement à sa taille finale, divisez le processus en étapes plus petites. Par exemple, pour redimensionner une image de 650 x 748 afin qu'elle s'adapte à 60 x 60, commencez par la réduire à 325 x 374 (50 % de la taille d'origine). Ensuite, réduisez-le à nouveau à 162 x 187 (50 % de la taille précédente). Enfin, redimensionnez-le à sa taille cible de 60 x 60, ce qui donne une image de bien meilleure qualité que si le redimensionnement était effectué en une seule étape importante.
Exemple de code :
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; }
Conseils supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!