Comment générer des images en D8
Il arrive parfois que l'on souhaite générer en code soit même les images à partir d'un imagestyle spécifique. Nous venons d'ailleurs de le faire dans un projet afin de créer un diaporama personnalisé. Dans ce cas précis, l'écriture d'un bloc en code était plus simple et plus léger que l'utilisation de Views.
Premièrement, dans votre code, vous utiliserez la classe ImageStyle
use Drupal\image\Entity\ImageStyle;
Ensuite, supposons que vous souhaitiez récupérer les images téléchargées dans le noeud en cours d'affichage :
// Load the current node. $node = \Drupal::routeMatch()->getParameter('node'); // If node exists if ($node) { // if node has images if(!empty($node->field_images)){ $images = $node->field_images; foreach($images as $image){ // We get the value of URI $image_uri = $image->entity->uri->value; // Then we generate derivatives. Our imagestyle is called carousel. // You could use your own or "thumbnail", "medium" and "large" that are created // with the standard Drupal installation. After that it's up to you // to output the $image_url generated. $image_url = ImageStyle::load('carousel')->buildUrl($image_uri); } } }