web-dev-qa-db-fra.com

Les tailles des images générées ne correspondent pas aux paramètres du support Taille de l'image

Les tailles d’image suivantes sont définies dans les paramètres de support:

Thumbnail Size: 125x69
Medium Size: 461x257
Large Size: 1070x600

J'ai EWWW Image Optimizer et Regenerate Thumbnails installé sur le dernier WP (4.8). J'ai vérifié les "Paramètres avancés" sur EWWW Optimizer et dans la capture d'écran suivante, il indique ce que je pense être la taille qui sera générée.

 enter image description here 

Pourtant, lorsque je télécharge une image ou force régénérer des vignettes, la largeur des images générées ne correspond tout simplement pas. Par exemple, j'ai téléchargé une image 1070x600, voici la taille qu'elle a réellement générée:

image-123x69.jpg
image-294x165.jpg
image-323x181.jpg
image-335x188.jpg
image-458x257.jpg
image-679x381.jpg
image-768x431.jpg

Je peux comprendre que la hauteur sera différente en fonction du rapport de format, mais je ne comprends pas pourquoi cela change même la largeur des images générées.

Le seul bit de code que j'ai dans le functions.php est le suivant:

// Add custom image sizes
add_image_size('home-thumbnail-highlight', 694, 381);
add_image_size('home-thumbnail', 330, 181);
add_image_size('listing-thumbnail', 342, 188);
add_image_size('sidebar-small-thumbnail', 300, 165);

Ce problème signifie, par exemple, que lorsque j'utilise une vignette (125xh), l'image est légèrement pixelisée car l'image générée est au format 123xh et l'image rendue au format 125xh. Me manque-t-il quelque chose d'évident ou existe-t-il un moyen de s'assurer que la largeur générée correspond toujours à la largeur de la page Paramètres de support?

2
Niraj Pandey

Par défaut, add_image_size tentera de redimensionner vos tailles d’image personnalisées au lieu de les recadrer (voir le quatrième argument de la fonction).

Donc, vous avez quelques options ici ...

  1. Effectuez un recadrage en passant true pour le quatrième argument de add_image_size ou personnalisez le positionnement du recadrage en transmettant un tableau pour le quatrième argument (voir la documentation). Cela forcera les dimensions de l'image à être redimensionnées exactement comme défini (par exemple, "home-thumbnail-highlight" sera 694x381).
  2. Définissez height sur une valeur très élevée et do not transmettez un quatrième argument pour le rognage (pour effectuer un redimensionnement).

Par exemple:

add_image_size('home-thumbnail-highlight', 694, 99999);
add_image_size('home-thumbnail', 330, 99999);
add_image_size('listing-thumbnail', 342, 99999);
add_image_size('sidebar-small-thumbnail', 300, 99999);

Cela forcera vos tailles personnalisées à toujours contraindre au width au lieu du height .

3
Jared Cobb