Package fr.univ_eiffel.legotools.image
Class StepwiseStrategy
java.lang.Object
fr.univ_eiffel.legotools.image.StepwiseStrategy
- All Implemented Interfaces:
ResolutionStrategy
Stratégie de redimensionnement par étapes (Iterative Resizing).
Pourquoi cette classe ?
Réduire une image de très haute définition vers une petite icône
en une seule opération provoque souvent une perte massive de détails (Aliasing).
Principe : Cette stratégie découpe le redimensionnement en plusieurs petites étapes intermédiaires (ex: 4000px -> 2000px -> 1000px -> 500px -> 64px) et peut même alterner les algorithmes (ex: utiliser Lanczos pour le début et Bilinéaire pour la fin).
-
Constructor Summary
ConstructorsConstructorDescriptionStepwiseStrategy(List<ResolutionStrategy> strategies, int numberOfSteps) Crée une nouvelle stratégie de redimensionnement par étapes. -
Method Summary
Modifier and TypeMethodDescriptionresize(BufferedImage source, int targetWidth, int targetHeight) Exécute le redimensionnement progressif.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface fr.univ_eiffel.legotools.image.ResolutionStrategy
getRGB, toRGB
-
Constructor Details
-
StepwiseStrategy
Crée une nouvelle stratégie de redimensionnement par étapes.- Parameters:
strategies- La liste des algorithmes à utiliser.numberOfSteps- Le nombre d'itérations intermédiaires. Plus ce nombre est élevé, plus la réduction est douce.
-
-
Method Details
-
resize
Exécute le redimensionnement progressif.L'algorithme calcule des étapes intermédiaires selon une progression géométrique pour lisser la réduction et éviter la perte brutale de détails (aliasing).
- Specified by:
resizein interfaceResolutionStrategy- Parameters:
source- L'image initiale à traiter.targetWidth- La largeur finale souhaitée après la dernière étape.targetHeight- La hauteur finale souhaitée après la dernière étape.- Returns:
- L'image finale, résultat de l'application successive des stratégies.
-