Class StepwiseStrategy

java.lang.Object
fr.univ_eiffel.legotools.image.StepwiseStrategy
All Implemented Interfaces:
ResolutionStrategy

public class StepwiseStrategy extends Object implements 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 Details

    • StepwiseStrategy

      public StepwiseStrategy(List<ResolutionStrategy> strategies, int numberOfSteps)
      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

      public BufferedImage resize(BufferedImage source, int targetWidth, int targetHeight)
      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:
      resize in interface ResolutionStrategy
      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.