Animation d’images en .webp

Comment créer une animation au format .webp à partir d’images

Créer une animation d'images en .webp

Si vous ne voyez pas l’image animée, soit votre navigateur n’est pas à jour, soit il ne sait pas lire le format .webp.

Ce tutoriel est écrit avec la version 1.2.2 de img2webp.exe.

 

Le format .webp de Google est un format récent pour les images, il est plus petit que le .jpg (environ 2,5 fois) et supporte également les images animés. Ce format est maintenant reconnu par tous les navigateurs aussi bien pour les images que pour les animations en .webp.

Le format .webp (animé) supporte 16 millions de couleurs alors que le format .gif (animé) n’en supporte que 256 au maximum.

Pour encoder des images en .webp (animé) vous avez besoin, d’au moins 2 images pour créer l’animation et du convertisseur img2webp.exe

Le convertisseur gratuit img2webp.exe fonctionne en ligne de commande (CMD) mais est très simple d’usage.

Télécharger le convertisseur img2webp

Le convertisseur img2webp est inclus dans un fichier .zip nommé libwebp-VERSION-windows-x64.zip (pour Windows) avec d’autres programmes. Il existe également pour Linux et Mac.

Pour le télécharger aller sur cette page Downloading and Installing WebP

Comme ce programme est constamment mis à jour (changement de version), si le lien Download ne fonctionne pas (ou est absent), il faut aller sur la page Downloads webmproject webp

À la date de cet article la dernière version est la 1.2.2 et se trouve tout en bas de page. Télécharger libwebp-1.2.2-windows-x64.zip (pour Windows), libwebp-1.2.2-linux-x86-64.tar.gz (pour Linux), libwebp-1.2.2-mac-10.15.tar.gz (pour Mac)

cliquer sur le lien pour télécharger le fichier (.zip de 3.5 Mo pour Windows)

Préparer les images

Avant de convertir, il faut préparer les images qui formeront l’animation. Vous pouvez les créer avec Photoshop ou un autre programme, elles doivent être dans un des formats supportés par le convertisseur donc en .jpg .png .webp .tiff.

Les images doivent être exactement de mêmes dimensions (largeur et hauteur) pour former l’animation.

Exemple avec ces 2 images.

2 images de Poupée avec un fond qui change de couleur
Poupée avec un fond qui change de couleur

Il ne faut pas nommer vos images avec un signe particulier, ni d’espace, ni d’accent, sinon cela ne fonctionne pas. Nommer vos images simplement, par exemple image1, image2, image3…

Dans Photoshop, il est préférable d’enregistrer les images par le menu Enregistrer pour le web… ou les touches Alt+Maj+Ctrl+S vous avez des Paramètres prédéfinis en haut de la fenêtre, vous pouvez choisir par exemple JPG Supérieur ou JPEG Moyen. Vous pouvez également modifier manuellement le taux de compression Qualité. Pour choisir une meilleure qualité il faut choisir Supérieur ou Maximum dans le menu de gauche.

Enregistrer pour le web
Enregistrer pour le web

Il ne faut pas choisir le format .gif car il ne peut contenir que 256 couleurs au maximum. Pour le .png il ne faut l’utiliser que s’il y a de la transparence dans vos images (et dans l’animation finale) car il est plus volumineux.

Préparer l’encodage

Le fichier .zip contient plusieurs programmes, celui qui nous intéresse c’est img2webp.exe qui se trouve dans le sous-dossier /bin. Vous n’avez pas besoin de tous le reste. Il fonctionne en ligne de commande (CMD) c’est à dire qu’on ouvre une Invite de commandes de Windows et on écrit le code pour convertir les images en animation, c’est très rapide.

Pour créer l’encodage il faut placer le programme img2webp et les images dans un même dossier.

décompresser le fichier .zip sur votre disque
créer un nouveau dossier par exemple à la racine de votre disque C:/ ou le disque ou la partition que vous voulez

Pour cet exemple le dossier créé se trouve sur le disque D: et se nomme /webp

copier puis coller dans ce dossier D:/webp, le fichier img2webp.exe qui se trouve dans le sous-dossier /bin
placer les images à convertir dans ce même dossier D:/webp

Contenu du dossier de conversion
Contenu du dossier de conversion

Copier et modifier le raccourci CMD

Pour encoder il faut écrire une ligne de commande dans l’Invite de commandes de Windows. Par défaut cette Invite s’affiche à partir de l’emplacement C:\User\SESSION>. Pour éviter de devoir naviguer dans l’arborescence des disques (ou de Windows) pour aller vers la destination, on peut dupliquer le raccourci CMD et changer le chemin d’exécution pour qu’il se lance directement dans le dossier D:/webp.

Pour récupérer le raccourci de CMD,
cliquer sur le menu Démarrer puis ouvrir le dossier Système Windows
faire un clic droit sur Invite de commandes et choisir Plus puis Ouvrir l’emplacement du fichier

Ouvrir l’emplacement du raccourci CMD
Ouvrir l'emplacement du raccourci CMD

Vous arrivez dans le dossier C:\Users\SESSION\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools

copier ou Ctrl+C le raccourci Invite de commandes
coller ou Ctrl+V ce raccourci dans le dossier D:\webp

Dupliquer le raccourci CMD
Dupliquer le raccourci CMD

Pour que le raccourci s’exécute dans ce dossier il faut le modifier,
faire un clic droit sur le raccourci et choisir Propriétés ou les touches Alt+Entrée
modifier le chemin Démarrer dans en effaçant la ligne %HOMEDRIVE%%HOMEPATH% et en la remplaçant par votre chemin donc D:\webp
valider la fenêtre par OK

Le chemin doit s’écrire avec une barre oblique inversée \, vous pouvez copier ce chemin à partir de l’Explorateur de Windows. Un signe \ s’écrit avec la touche Alt Gr (celle de droite sur le clavier) + la touche \ (mais cela dépend de votre clavier).

Modifier le raccourci CMD
Modifier le raccourci CMD

Le raccourci modifié va maintenant s’ouvrir directement dans le dossier D:\webp, donc vous n’avez plus besoin de naviguer dans l’arborescence (de Windows) pour l’atteindre. Bien sûr il faut adapter en fonction du nom de votre dossier. Si vous dupliquez ce raccourci et le mettez dans un autre dossier, il suffit de changer la destination Démarrer dans

Si vous préférez naviguer dans l’Invite de commandes originale,
utiliser directement les touches Win+R écrire CMD et valider la fenêtre par OK ou la touche Entrée

Dans la fenêtre, après la ligne qui s’affiche,
écrire la lettre du Lecteur sur lequel vous voulez aller, pour notre exemple c’est le lecteur D: puis valider avec la touche Entrée
ensuite pour aller dans le sous-dossier /webp écrire cd webp

Naviguer dans l’arborescence
Naviguer dans l'arborescence

Vous obtenez le chemin D:\webp. C’est dans cet emplacement que se trouve le programme img2webp.exe et les images à convertir en animation.

Pour information,
Si vous voulez remonter dans l’arborescence d’un dossier (dossier parent) il faut écrire cd\ puis touche Entrée
Si vous voulez effacer tout l’écran, écrire cls puis touche Entrée
Si vous voulez recopier un texte (code) écrit précedemment, appuyer sur F3

Pour plus de commandes CMD, voir cet article Les commandes de base de l’invite de commande CMD

Encoder en .webp (animé)

Dans le dossier libwebp-1.2.2-windows-x64.zip téléchargé il y a un fichier Readme.txt avec toutes les explications pour la procédure (en anglais). Voici un extrait de son contenu avec les explications qui nous intéresse.

Animation creation tool:
========================
The utility 'img2webp' can turn a sequence of input images (PNG, JPEG, ...) into an animated WebP file. It offers fine control over duration, encoding modes, etc.
Usage:	img2webp [file_options] [[frame_options] frame_file]...

File-level options (only used at the start of compression):
 -min_size ............ minimize size
 -loop  .......... loop count (default: 0, = infinite loop)
 -kmax  .......... maximum number of frame between key-frames (0=only keyframes)
 -kmin  .......... minimum number of frame between key-frames (0=disable key-frames altogether)
 -mixed ............... use mixed lossy/lossless automatic mode
 -v ................... verbose mode
 -h ................... this help
 -version ............. print version number and exit

Per-frame options (only used for subsequent images input):
 -d  ............. frame duration in ms (default: 100)
 -lossless  ........... use lossless mode (default)
 -lossy ... ........... use lossy mode
 -q  ........... quality
 -m  ............. method to use

example: img2webp -loop 2 in0.png -lossy in1.jpg -d 80 in2.tiff -o out.webp

Note: if a single file name is passed as the argument, the arguments will be tokenized from this file. The file name must not start with the character '-'.

Si vous voulez afficher ces mêmes informations dans l’Invite de commandes, écrire img2webp -h ou img2webp -help et valider avec la touche Entrée

Afficher les informations de img2webp
Afficher les informations de img2webp

Les informations sont également présentes sur cette page Webp – img2webp

Pour encoder il faut écrire cette ligne de commande (code théorique) img2webp (options) images (options) -o image.webp
Cela correspond à : Nom du programme (sans le .exe) – paramètres (optionnels) – noms des images (séparées par un espace) – paramètres (optionnels) – nom du fichier final en .webp.

Voici la commande de conversion simple (sans paramètre) img2webp image1.jpg image2.jpg -o anime1.webp

Conversion simple
Conversion simple

Le programme encode dans l’ordre les images 1 et 2 pour créer une animation nommée anime1.webp

  • img2webp : nom du programme
  • image1.jpg image2.jpg : les 2 images qui seront encodées ensemble (séparées par un espace)
  • -o : sert à indiquer le nom de l’image finale (fichier de sortie)
  • anime1.webp : nom de l’image finale en .webp (animé)

Il faut bien respecter un espace entre chaque image et chaque terme. Il est possible d’inverser l’ordre des images en les inversant dans la ligne de commande. Le nombre d’image n’est pas limité, on peut en mettre plus que 2. La vitesse de l’animation est très rapide (100 ms par défaut).

Exemple d’image animée en .webp
Exemple d'image animée en .webp

Ajouter des paramètres

Par défaut l’animation est très rapide (presque intantanée), le convertisseur encode en lossless (sans perte) et l’animation tourne en boucle (à l’infini)

En ajoutant des paramètres il est possible,

  • de modifier la vitesse de l’animation (fréquence entre les frames)
  • de limiter l’exécution de l’animation à X fois (au lieu d’une boucle infini)
  • d’encoder en lossy, donc une compression avec perte
  • Modifier la vitesse de l’animation

    Par défaut (sans paramètre) l’animation s’exécute à 100 ms donc 0,1 seconde. Pour accélérer l’animation il faut réduire ce nombre, et inversement pour ralentir l’animation il faut augmenter ce nombre, en ajoutant le terme -d et le nombre. En fait ce qu’on indique c’est la durée de la frame (fixe), une frame étant ici une image.

    Exemple pour une animation plus rapide (que 100 par défaut) img2webp -d 60 image1.jpg image2.jpg -o anime6.webp
    Exemple pour une animation plus lente (que 100 par défaut) img2webp -d 600 image1.jpg image2.jpg -o anime7.webp

    Animation plus lente à 0,6 images/s
    Animation plus lente à 0,6 images/s

    Limiter l’éxécution de l’animation

    Par défaut (sans paramètre) l’animation tourne en boucle (à l’infini). Si on veux limiter son exécution à X fois, il faut ajouter le terme -loop et le nombre de fois. Exemple avec 3 fois img2webp -loop 3 image1.jpg image2.jpg -o anime4.webp

    Exemple avec une compression -lossy et un -loop (3 fois) img2webp -lossy -loop 3 image1.jpg image2.jpg -o anime5.webp

    Encoder en lossy (avec perte)

    Par défaut le convertisseur encode en lowless (sans perte) donc votre animation sera de même qualité que les images d’origine mais au format .webp. Encoder en lossy (avec perte), cela sert à compresser les images mais cela peut les dégrader.

    Mon conseil est plutôt d’optimiser les images source dans Photoshop puis d’encoder en lowless (sans perte) ensuite dans le convertisseur, ainsi vous contrôler mieux le résultat. Dans Photoshop pour optimiser les images il faut les enregistrer par le menu Enregistrer pour le web….

    Ensuite si vous voulez réduire le poids du fichier final il est préférable de réduire d’abord les dimensions de l’image, c’est beaucoup plus efficace en terme de poids du fichier que la compression de ces images (lossy). Bien sûr, moins il y a d’images dans l’animation et moins le fichier final sera important et inversement. Donc peut être que vous pouvez supprimer une image sur deux !

    Pour encoder en lossy (avec perte) il faut ajouter le terme -lossy après l’image qu’on veux compresser, exemple avec uniquement la compression de la 1ère image img2webp image1.jpg -lossy image2.jpg -o anime2.webp

    Si on veux compresser toutes les images, il faut placer le terme -lossy juste après img2webp img2webp -lossy image1.jpg image2.jpg -o anime3.webp

    Il est également possible de combiner du lowless avec du lossy, il faut ajouter le paramètre -mixed (non testé)

    Ajouter plus d’images dans l’animation

    Je n’ai pas lu dans la documentation de limite du nombre d’images, mais bien sûr plus il y a d’images plus le poids du fichier final sera important.

    Exemple avec 10 images : img2webp image1.jpg image2.jpg image3.jpg image4.jpg image5.jpg image6.jpg image7.jpg image8.jpg image9.jpg image10.jpg -o anime8.webp

    Autres paramètres

    Il existe d’autres paramètres (non testés)
    -q : permet de choisir le taux de compression (par défaut 75) – je suppose qu’il s’utilise avec lossy ?
    -m : permet de choisir la méthode de compression – les valeurs possibles vont de 0 à 6 (défaut 4).
    -kmin et -kmax : servent à indiquer le nombre de frame minimales et maximales ?

    Encoder en .webp

    Si vous voulez simplement encoder une image au format .webp, utiliser le programme bin/cwebp.exe. La procédure est similaire, le programme fonctionne également en ligne de commande (CMD).

    Pour un encodage simple écrire la ligne cwebp image1.jpg -o image1.webp

    La qualité d’encodage est par défaut de 75 (variable entre 0 et 100), si vous voulez une meilleure qualité il faut augmenter ce taux, en ajoutant le terme -q et le taux et inversement pour réduire la qualité il faut choisir une valeur inférieur à 75.

    Par exemple cwebp image1.jpg -q 80 -o image1.webp

    Pour tous les paramètres, voir le fichier Readme.txt qui est dans le .zip téléchargé

    Voir également cet article qui permet d’ajouter un plugin d’encodage en .webp directement dans Photoshop ▶ Ouvrir et enregistrer les images .webp dans Photoshop

    Autres programmes d’encodage (conversion)

    Pour décoder une image .webp utiliser le programme bin/dwebp.exe

    Pour convertir une image .gif (animée) en .webp (animé) utiliser le programme bin/gif2webp.exe. Voir des informations sur cette page Webp – gif2webp

    Pour créer une animation complexe ou pour inclure des métadonnées, je crois qu’il faut utiliser le programme webpmux.exe (non testé). Les informations sont sur cette page Webp – webpmux

    Exemple d’animation de la poupée

    préparer 3 images avec les 3 positions de la tête, sur un fond transparent, donc ce sera en PNG (avec transparence)
    enregistrer les 3 images en .png par le menu Enregistrer pour le web… au format PNG-24 (poupee1.png, poupee2.png, poupee3.png), il faut laisser cochée la case Transparence
    convertir ces 3.png en animation .webp

    Pour ces images le code est img2webp poupee1.png poupee2.png poupee3.png poupee2.png -o poupeeanime.webp

    Poupée animé (vitesse par défaut)
    Poupée animé (vitesse par défaut)

    On peut ralentir l’animation si elle trop rapide (100 ms par défaut) img2webp -d 300 poupee1.png poupee2.png poupee3.png poupee2.png -o poupeeanime2.webp

    Poupée animé (vitesse plus lente)
    Poupée animé (vitesse plus lente)

    L’image 02 est repétée dans la conversion car c’est l’image intermédiaire, celle entre les 2 autres positions de la tête, donc pas besoin de créer 4 images (dont 2 identiques).

    Comparatif entre .gif animé et .webp animé

    Comparaison de la même animation enregistrée en .gif et en .webp

    • Animation en .gif : création de 4 vignettes dans le panneau Montage puis enregistrement en .gif animé (256 couleurs Tramé)
    • Animation en .webp : création de 3 images en JPEG Supérieur puis conversion en .webp (taux de compression de 75 par défaut)

     

    Poupée animé en .GIF (à gauche) et en .WEBP (à droite)
    Poupée en .gif Poupée en .webp

    Pour information le code pour le .webp est img2webp -d 200 poupeeanime1.jpg poupeeanime2.jpg poupeeanime3.jpg poupeeanime2.jpg -o poupeeanime4.webp

    L’animation a été ralenti en ajoutant -d 200 pour correspondre à la vitesse visuelle du .gif, qui lui est en 0,25 s dans le panneau Montage de Photoshop.

    Commentaires

    • Le .gif est limité à 256 couleurs, pour l’animation de cette image en .gif on constate une très légère dégradation car il manque quelques couleurs
    • Le .webp accepte 16 millions de couleurs, on ne constate pas de défaut par rapport aux images source, donc pour une bonne qualité de l’animation il faut que vos images source soient de bonne qualité, dans Photoshop choisir le Paramètre prédéfini JPEG Supérieur ou mieux
    • Le poids du fichier en .webp est plus gros que celui du .gif, pour cette animation il est 348 ko pour le .gif et de 566 ko pour le .webp. Si l’image est plus petite (300×404 px) le poids du fichier est de 130 ko pour le .gif et de 262 ko pour le .webp. Si l’image est plus grande (600×804 px) le poids du fichier est de 450 ko pour le .gif et de 1146 ko pour le .webp

     

    Ce tutoriel est la propriété du site Photoshoplus. Toute reproduction, exploitation ou diffusion du présent document est interdite.