Aller au contenu

Intermédiaire 5 : Le recadrage focal

Objectif : qu'un portrait recadré en carré garde le visage, pas le plafond.

Ce que crop coupe sans le savoir

Un recadrage centré prend le milieu géométrique de l'image.
Sur une photo de groupe où quelqu'un est à gauche, le milieu est un mur.

Un point focal dit quel endroit doit rester visible.

from forge_mvc_images import FocalPoint, crop_to_focal

recadree = crop_to_focal(image, (300, 300), FocalPoint(x=0.3, y=0.25))

Les coordonnées sont relatives, entre 0 et 1 : 0.5, 0.5 est le centre, 0, 0 le coin haut gauche.

Relatives, donc valables à toutes les tailles

Un point en pixels serait faux dès que l'original change de taille, ou qu'une variante plus petite est recadrée à son tour.

Le point est une préférence, pas une garantie

Si la boîte demandée est plus grande que ce que l'image permet autour du point, le recadrage se décale pour rester dans l'image.

Mieux vaut un cadrage un peu décalé qu'une bande vide sur le côté.

Sans point focal, le comportement ne change pas

crop_to_focal(image, cible) sans point recadre au centre, comme avant.

Ajouter cette fonction ne modifie donc aucune image déjà produite.

À retenir

  • Le point focal est relatif, entre 0 et 1, et vaut pour toutes les tailles.
  • Il oriente le recadrage sans jamais sortir de l'image.
  • Sans lui, le centre reste le comportement.

Étape suivante

Bilan du niveau intermédiaire