


Comment maintenir une qualité d'image élevée après une réduction d'échelle en Java ?
Dec 16, 2024 pm 10:25 PMComment 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 :
- Utilisez anti-aliasing : L'anticrénelage aide à réduire les bords irréguliers en mélangeant les pixels adjacents.
- Conseils de rendu de haute qualité : Définissez les conseils de rendu pour permettre un redimensionnement et une interpolation de haute qualité.
- Choisissez un algorithme d'interpolation approprié : Utilisez un algorithme d'interpolation de haute qualité tel que bicubique ou Lanczos pour des résultats optimaux.
- Réduire modérément : Évitez une réduction d'échelle excessive pour préserver les détails. Descendez l'image par incréments plus petits.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation?

Top 4 frameworks JavaScript en 2025: React, Angular, Vue, Svelte

Comment puis-je utiliser JPA (Java Persistance API) pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux?

Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance?

Node.js 20: Boosts de performances clés et nouvelles fonctionnalités

Iceberg: L'avenir des tables de Data Lake

Spring Boot SnakeyAml 2.0 CVE-2022-1471 Issue fixe

Comment puis-je implémenter des techniques de programmation fonctionnelle en Java?
