Sur cette page
Images
Cecil fournit des fonctions et filtres Twig pour redimensionner, recadrer et convertir des images, et pour générer des images responsives et des images de substitution.
image_srcset
Construit l’attribut HTML img srcset (responsive) d’un asset image.
{{ image_srcset(asset) }}
Exemple :
{% set asset = asset(image_path) %}
<img src="{{ url(asset) }}" width="{{ asset.width }}" height="{{ asset.height }}" alt="" class="asset" srcset="{{ image_srcset(asset) }}" sizes="{{ image_sizes('asset') }}">
image_sizes
Renvoie l’attribut HTML img sizes en fonction d’un nom de classe CSS (voir assets.images.responsive.sizes).
Il doit être utilisé conjointement avec la fonction image_srcset (voir l’exemple ci-dessus).
{{ image_sizes('class') }}
image_from_website
Construit l’élément HTML img à partir de l’URL d’un site web, en extrayant son image d’illustration.
Renvoie null si aucune image n’est trouvée.
{{ image_from_website('url', {attributes}, {options}) }}
Les candidats sont recherchés dans le HTML de la page dans l’ordre suivant ; le premier qui peut être téléchargé en tant qu’image est utilisé :
- Open Graph :
og:image:secure_url,og:image,og:image:url - Twitter :
twitter:image,twitter:image:src <link rel="image_src">- Microdata :
itemprop="image" - JSON-LD : propriété
image - Premier élément
<img>de<article>,<main>ou<body> <link rel="apple-touch-icon"><link rel="icon">
Les URL relatives sont résolues par rapport à <base href> ou à l’URL de la page.
L’URL de l’image trouvée et l’image téléchargée sont mises en cache (voir cache.assets.remote.ttl).
Options :
fallback: chemin (ou URL) de l’image utilisée si aucune image n’est trouvée- autres options de
image(ex. :responsive,formats)
Exemples :
{{ image_from_website('https://example.com/page-with-image.html') }}
{# avec une image de repli #}
{{ image_from_website('https://example.com/', {alt: 'Illustration'}, {fallback: 'images/default.png'}) }}
resize
Redimensionne une image à une largeur (en pixels) et/ou une hauteur (en pixels) spécifiées.
- Si seule la largeur est spécifiée, la hauteur est calculée pour conserver le rapport hauteur/largeur
- Si seule la hauteur est spécifiée, la largeur est calculée pour conserver le rapport hauteur/largeur
- Si la largeur et la hauteur sont spécifiées, l’image est redimensionnée pour tenir dans ces dimensions, puis recadrée et centrée si nécessaire
- Si
remove_animationvauttrue, toute animation de l’image (ex. : GIF) est supprimée
{{ asset(image_path)|resize(width: width, height: height, remove_animation: bool) }}
Exemples :
{{ asset(page.image)|resize(300) }}
{# équivalent à : #}
{{ asset(page.image)|resize(width: 300) }}
{# redimensionne à 200px de hauteur, largeur calculée pour conserver le rapport hauteur/largeur #}
{{ asset(page.image)|resize(height: 200) }}
{# redimensionne à 300px de largeur et 200px de hauteur, et recadre si nécessaire #}
{{ asset(page.image)|resize(300, 200) }}
{# supprime toute animation de l’image #}
{{ asset(page.image)|resize(width: 1200, height: 630, remove_animation: true) }}
cover
Redimensionne une image à une largeur et une hauteur spécifiées, en la recadrant si nécessaire.
{{ asset(image_path)|cover(width, height) }}
Exemple :
{{ asset(page.image)|cover(1200, 630) }}
maskable
Ajoute une marge intérieure, en pourcentage de la taille de l’image (20 par défaut), pour rendre l’image masquable.
{{ asset(image_path)|maskable(padding) }}
Exemple :
{{ asset('icon.png')|maskable }}
webp
Convertit une image au format WebP, avec une qualité optionnelle (par défaut : assets.images.quality).
{{ asset(image_path)|webp(quality) }}
Exemple :
<picture>
<source type="image/webp" srcset="{{ asset(image_path)|webp }}">
<img src="{{ url(asset(image_path)) }}" width="{{ asset(image_path).width }}" height="{{ asset(image_path).height }}" alt="">
</picture>
avif
Convertit une image au format AVIF, avec une qualité optionnelle (par défaut : assets.images.quality).
{{ asset(image_path)|avif(quality) }}
Exemple :
<picture>
<source type="image/avif" srcset="{{ asset(image_path)|avif(60) }}">
<img src="{{ url(asset(image_path)) }}" width="{{ asset(image_path).width }}" height="{{ asset(image_path).height }}" alt="">
</picture>
lqip
Renvoie un espace réservé pour une image de faible qualité (100 px de large, flouté) sous forme d’URL de données (data URL).
{{ asset(image_path)|lqip }}
dominant_color
Renvoie la couleur dominante d’une image, sous forme de valeur de couleur CSS (par exemple rgb(120 85 60)).
{{ asset(image_path)|dominant_color }}