web-dev-qa-db-fra.com

add_image_size () pour télécharger les images en carrés?

Donc, je sais comment définir des images personnalisées avec add_image_size('name',X,Y,Crop?), ce qui est cool, mais je dois créer quelque chose qui permet de rogner les images, quelle que soit leur taille, en carrés.

En gros, je veux m'assurer que les images téléchargées de l'utilisateur seront toujours des carrés.

1
rugbert

Si vous passez true pour le dernier argument $crop, le mode de rognage dit "dur" est utilisé. Ainsi, WP produira des résultats à la taille exacte spécifiée, à l'exception de quelques cas Edge (si l'image téléchargée est inférieure à la taille spécifiée, par exemple).

Notez que l’image originale est toujours conservée telle quelle. Si vous avez également besoin de modifier les originaux, c'est-à-dire pour lequel la fonctionnalité de tailles natives WP est destinée, vous devrez le faire avec du code personnalisé.

2
Rarst

Je pense que beaucoup de développement de thèmes s’éloignent de l’utilisation d’add_image_size car WordPress cède la place à de nombreuses images. Donc, plutôt que de le faire de cette façon, vous pouvez utiliser un plugin ou même un plugin qui s'intégrera dans votre thème. Voici un bon qui est facile à utiliser

https://github.com/sy4mil/Aqua-Resizer

Je pense que c'est une meilleure façon de faire que de faire l'add_image_size. à partir du script, vous appelez simplement la taille et la forme dont vous aurez besoin.

Par exemple. Disons que vous avez besoin d’une image 125 x 125 qui vous donnerait un joli carré. Vous pouvez faire quelque chose comme ça dans la boucle.

 $thumb = get_post_thumbnail_id();
 $img_url = wp_get_attachment_url( $thumb,'full' ); //get full URL to image (use    "large" or "medium" if the images too big)
 $image = aq_resize( $img_url, 125, 125, true ); //resize & crop the image

 ?>

 <article <?php post_class()?> id="post-<?php the_ID(); ?>">

<?php if($image) : ?>
    <img src="<?php echo $image ?>"/>
<?php endif; ?>

Cela prendrait l’image sélectionnée de la publication et recadrerait l’image en une surface de 125 x 125 m² et reproduirait l’image en écho.

Vous pouvez voir plus d'exemples sur cette page

1
Jamie