Redimensionnement et rognage

Une image a une largeur "Lo", et une hauteur "Ho" (o comme original)

On a plusieurs solutions pour la redimensionner :

- maintien des proportions : oui/non
- rognage sur la hauteur : oui/non
- rognage sur la largeur : oui/non

On indique 4 valeurs pour gérer cela :

- largeur de redimensionnement : Lr
- hauteur de redimensionnement : Hr
- rognage en largeur : Rl
- rognage en hauteur : Rh

1) redimensionnement avec maintien des proportions

On calcule les 2 ratios : 

- L_ratio = Lr / Lo 
- H_ratio = Hr / Ho

Le plus petit l'emporte.

Exemple : Lo = 500 | Ho = 200 | Lr = 100 | Hr = 50

L_ratio = 0,20
H_ratio = 0,25

[hors math : la cible est proportionnellement plus haute que l'image d'origine]

Le ratio de redimensionnement sera alors 0, 20.

Soit  : 

- Lr = 0,20 * 500 = 100
- Hr = 0,20 * 200 = 40

De cette manière, on s'assure que l'image redimensionnée est toujours inférieure aux dimensions de redimensionnement.

[hors math : la largeur est donc conservée et la hauteur ajustée en proportion]

2) redimensionnement sans maintien des proportions

Cela paraît plus simple, mais en fait, c'est plus compliqué !

Il faut d'abord redimensionner l'image comme précédemment mais en prenant le plus grand des ratios afin de conserver une image dont les dimensions sont supérieures aux dimensions de redimensionnement.

Ensuite, on rogne de chaque côté (dans le sens de la largeur ou de la hauteur) les morceaux dépassant.

Exemple : Lo = 500 | Ho = 200 | Lr = 50 | Hr = 50

L_ratio = 0,10
H_ratio = 0,25

[hors math : la cible est proportionnellement plus haute que l'image d'origine]

Le ratio de redimensionnement sera alors 0, 25.

Soit  : 

- Lr = 0,25 * 500 = 125
- Hr = 0,25 * 200 = 50

La hauteur est bonne, il faut donc rogner dans le sens de la largeur. 

Pour atteindre 50, on va donc rogner : (125 - 50)/2 de chaque côté, soit 38 d'un côté et 37 de l'autre (en tenant compte des arrondis).

[hors math : la hauteur est donc conservée et la largeur rognée pour s'ajuster aux proportions de la cible]

3) Rognage

Le rognage se fera avant le redimensionnement. Il consiste à retirer à l'image d'origine une valeur

Exemple : Lo = 500 | Ho = 200 | Lr = 50 | Hr = 50 | Rl = 50 | Rh = 50

[hors math : on veut rogner 50 pixels sur chaque côté avant de redimensionner l'image]

Image rognée : Lo = 450 | Ho = 150 | Lr = 50 | Hr = 50

L_ratio = 0,11
H_ratio = 0,33

[hors math : une fois l'image rognée, on redimensionne comme dans §1 ou §2]

Le ratio de redimensionnement sera alors 0, 33 (redimensionnement sans maintien des proportions).

Soit  : 

- Lr = 0,33 * 450 = 150
- Hr = 0,33 * 150 = 50

La hauteur est bonne, il faut donc rogner dans le sens de la largeur. 

Pour atteindre 50, on va donc rogner : (150 - 50)/2 de chaque côté, soit 50 d'un côté et 50 de l'autre (en tenant compte des arrondis).