web-dev-qa-db-fra.com

Dimensions de l'image identiques à la taille de l'image

Donc, si je règle 600x600 pixels sur la grande taille de la bibliothèque multimédia, puis que je télécharge une image ayant les mêmes dimensions, elle ne sera pas définie comme une "grande" image.

Il est question de cette question à propos du ratio, mais je ne pense pas que ce soit le cas. De plus, je ne souhaite pas configurer une autre taille d'image personnalisée, car cela saturerait le serveur d'images redondantes, alors que le format "grand" devrait fonctionner!

Existe-t-il un filtre ou un paramètre permettant de modifier la logique des images; ainsi, si la dimension est supérieure à, OR égale au paramètre de la bibliothèque multimédia, elle est définie en tant que grande image. Pour le moment l'égal semble manquer.

Merci

3
addedlovely

Non, cela ne créera pas une nouvelle image ayant exactement la même taille. Toutes les images miniatures, moyennes et grandes sont des images redimensionnées, par définition. Étant donné que l'image d'origine mesure déjà 600 x 600, il est inutile de créer un autre fichier de même taille, mais avec une qualité inférieure (rappelez-vous que la compression JPEG entraîne des pertes).

Toutefois, si vous spécifiez dans l'appel de modèle que vous souhaitez utiliser la grande taille d'image avec un élément tel que <?php echo get_the_post_thumbnail( $post->ID, 'large' ); ?>, et qu'il n'y a pas de "grande" taille disponible pour cette image, elle utilisera en fait l'image en taille réelle, et non la taille moyenne. un. Il choisit toujours "up", fondamentalement.

Vous voyez, chaque fois que vous spécifiez une taille d'image telle que grande, moyenne ou même un tableau (400 400), WordPress sélectionne ensuite l'image de taille supérieure plus grande qu'il peut trouver, puis l'utilise, ainsi que les règles de largeur/hauteur dans l'IMG. balise pour que le navigateur le redimensionne. Cela se produit parce que les images ressemblent à de la merde quand elles sont dimensionnées, mais raisonnablement correctes quand elles sont dimensionnées.

Donc oui, même sans la grande taille de l'image en cours de création, spécifier la "grande" taille en tant que taille dans le modèle est correct et fonctionnera correctement. Je viens de tester cela sur un site de test, en utilisant ce code et ce dimensionnement exacts, et tout fonctionne correctement. La spécification de la taille importante a forcé l’utilisation de l’URL de la taille complète et non de celle du support.

7
Otto

Peut-être que cela ferait l'affaire. Si votre image complète a les mêmes dimensions que vos grands paramètres (et est donc définie sur "complète"), affichez-la au lieu de la grande:

if( empty( get_the_post_thumbnail( $post->ID, 'large') ) && !empty( get_the_post_thumbnail( $post->ID, 'full') {
    // show full image (same size as large)
    echo get_the_post_thumbnail( $post->ID, 'full');
} else {
    // show large image
    echo get_the_post_thumbnail( $post->ID, 'large');
}
1
mike23