Outils pour utilisateurs

Outils du site


symfony5:divers_images_liip_imagine

Gérer les images avec LiipImagine

Installation dans le projet

composer require liip/imagine-bundle

Un fichier de configuration est ajouté :

/config/packages/liip_imagine.yaml
liip_imagine:
    # valid drivers options include "gd" or "gmagick" or "imagick"
    driver: "gd"

Si on utilise le driver “gd” comme indiqué ci-dessus, l'extension php-gd doit être installée.

sudo apt install php-gd
sudo systemctl restart apache2

Filtres

Ajouter des filtres :

/config/packages/liip_imagine.yaml
liip_imagine:
    driver: "gd"
    
    filter_sets:
    
        # filtre nommé "miniature200x200"
        miniature200x200:
            quality: 75
            filters:
                thumbnail:
                    size: [200, 200]
                    mode: outbound
 
        # filtre nommé "image_article"
        image_article:
            quality: 80
            filters:
                upscale:
                    min: [800, 400]
                thumbnail:
                    size: [800, 400]
                    mode: outbound

Utilisation d'un filtre

Le fichier image est stocké dans le dossier public

Chemin de l'image
/public/img/photo.jpg

Dans un template twig, on accède à l'image comme ceci :

<img src="{{ asset('img/photo.jpg') }}" >

Pour y ajouter le filtre miniature200x200 défini dans l'exemple ci-dessus :

<img src="{{ asset('img/photo.jpg') | imagine_filter('miniature200x200') }}" >

Mise en cache

L'image est mise en cache, dans un dossier /public/media/cache créé automatiquement.

Le chemin complet de l'image est :

/public/media/cache/NOM-DU-FILTRE/CHEMIN-DE-L'IMAGE

Donc pour reprendre l'exemple ci-dessus, cela donne :

/public/media/cache/miniature200x200/img/photo.jpg
symfony5/divers_images_liip_imagine.txt · Dernière modification: 2020/05/03 19:25 par marclebrun