Bhinish Dhiman
Créer un GIF animé à partir d'images, sans alourdir le fichier
Traduit de l’original en anglais. Lire l’original
Déposez les images dans le GIF maker, faites-les glisser dans l'ordre, choisissez une largeur, réglez le délai entre images et lisez « What this will weigh » avant d'appuyer sur « Build the GIF ». Le poids croît avec largeur × hauteur × nombre d'images : avec cet encodeur, une photo coûte de 0.56 à 0.75 octet par pixel et par image, une capture d'interface 0.006. Diviser la largeur par deux divise le fichier par quatre, ce qui vaut mieux que de réduire les couleurs.
Créer un GIF à partir de quelques images fixes prend une minute. En créer un qui ne pèse pas plusieurs mégaoctets suppose de savoir comment le format vous facture, et il le fait d’une manière facile à calculer avant de toucher à quoi que ce soit. Ce guide porte sur les images fixes ; si vous partez d’un extrait vidéo, les mesures de vidéo en GIF : les octets par pixel et par image couvrent ce cas.
Comment un GIF vous facture
Un GIF animé est une pile d’images fixes complètes, chacune stockée sous forme d’index de palette sur 8 bits et compressée en LZW, avec un délai inscrit à côté de chacune. Il n’y a ni estimation de mouvement ni image de référence : rien dans le format ne remarque que deux images sont presque identiques. Le poids est donc proche d’une simple multiplication :
octets ≈ largeur × hauteur × images encodées × octets par pixel par image
Le dernier terme dépend du contenu, pas d’un réglage. Mesuré avec l’encodeur qu’utilise cet outil, dans Chromium, le 27 septembre 2026 :
| Contenu | Octets par pixel par image |
|---|---|
| Photo, 800 × 533, 8 images | 0.56 à 0.69 |
| Photo, 480 × 320, 8 images | 0.59 à 0.75 |
| Bandes de couleur unie | 0.033 |
| Capture d’écran d’interface | 0.006 à 0.013 |
Cela fait deux ordres de grandeur entre une photo et une capture d’écran. Le LZW écrase très bien les longues suites de pixels identiques et ne gagne presque rien sur le grain photographique : aucun réglage de palette ou de tramage ne comble l’écart.
Calculer le poids avant de créer le GIF
L’outil affiche son estimation sous What this will weigh (ce que cela va peser), au-dessus du bouton de création. Il prélève un échantillon de 64 × 64 de vos pixels, compte les couleurs distinctes et choisit un taux entre 0.03 octet par pixel par image (64 couleurs ou moins dans l’échantillon, ce qui indique un visuel en aplats) et 0.65 (2 000 ou plus, ce qui indique une photo). Il ajoute ensuite 800 octets pour le fichier et 24 pour chaque image. Voici ce calcul pour six photos au format 4:3 :
| Configuration | Images encodées | Taille d’image | Taux utilisé | Estimation |
|---|---|---|---|---|
| Six photos, largeur 480 | 6 | 480 × 360 | 0.65 | 674 864 o |
| Six photos, largeur 240 | 6 | 240 × 180 | 0.65 | 169 424 o |
| Six photos, largeur 480, fondu de 2, en boucle | 18 | 480 × 360 | 0.65 | 2 022 992 o |
| Douze photos, largeur 800 | 12 | 800 × 600 | 0.65 | 3 745 088 o |
| Six captures en aplats, largeur 480 | 6 | 480 × 360 | 0.03 | 32 048 o |
La première ligne vaut 800 + 6 × (24 + 480 × 360 × 0.65) = 674 864. Trois enseignements ressortent du tableau.
La largeur est le levier. Diviser la largeur par deux, de 480 à 240, divise les pixels par quatre et a ramené l’estimation à 25 % de la première ligne (169 424 ÷ 674 864 = 0.251). Aucun autre réglage n’en approche pour le même coût visuel.
Le fondu se paie en images entières. Chaque étape de transition est une image supplémentaire complète. Avec deux étapes entre chacune des six images, et la dernière image qui revient en fondu vers la première parce que l’animation boucle, 6 images deviennent 6 + 6 × 2 = 18 images encodées, et l’estimation triple. Les transitions durent 40 ms chacune : la durée totale ne passe donc que de 1.2 seconde à 1.68 (6 × 200 ms + 12 × 40 ms).
La ligne rouge est à 3 000 000 octets. Au-delà, l’estimation passe au rouge. Douze photos de 800 pixels de large la franchissent largement.
L’estimation est affichée sous forme de fourchette de 35 % de part et d’autre de la valeur probable, et elle est remplacée par le nombre d’octets réel une fois le fichier créé. Deux limites méritent d’être connues. Elle ne bouge pas quand vous modifiez Colours ou Dithering, car elle ne dépend que de la taille, du nombre d’images et de l’échantillon de pixels. Et pour les captures d’interface en aplats, son taux le plus bas, 0.03, dépasse les 0.006 à 0.013 réellement mesurés : un GIF de capture d’écran peut donc peser bien moins que la fourchette affichée.
La marche à suivre dans le GIF maker
- Ouvrez le GIF maker et appuyez sur Choose images (choisir des images), ou déposez-les dans la zone ; elles deviennent les images de l’animation dans l’ordre où vous les ajoutez. Une photo HEIC tout droit sortie d’un iPhone doit généralement être convertie d’abord.
- Mettez les images dans l’ordre sous Frames · drag to reorder (images · faire glisser pour réordonner). Faites glisser une vignette, ou utilisez les boutons ← et → en dessous ; × supprime une image, et Add more images en ajoute à la fin.
- Choisissez une largeur : 240, 320, 480 (la valeur de départ), 640 ou 800, ou saisissez-en une sous Exact width. La hauteur suit les proportions de la première image.
- Réglez le rythme avec le curseur Frame delay (délai entre images), qui démarre à 200 ms (5 fps). Pour régler chaque image séparément, appuyez sur One delay for all afin qu’il affiche Per-frame delays, puis saisissez une valeur dans la case ms sous chaque vignette.
- Réglez Loops · 0 is forever (boucles · 0 pour l’infini). Les images dont les proportions diffèrent de la première sont placées avec Fit inside (ajuster à l’intérieur) ou Fill and crop (remplir et recadrer), sur un fond White, Black ou Grey.
- Lisez What this will weigh. Si c’est rouge ou simplement trop lourd, réduisez la largeur avant de toucher à quoi que ce soit d’autre.
- Appuyez sur Build the GIF, puis sur Download (le bouton indique le poids réel). Sous The actual file, l’outil affiche les véritables octets par pixel par image du fichier qu’il vient de produire.
Le délai saisi et le délai obtenu
Le format stocke chaque délai en centièmes de seconde, si bien que toute valeur tombe sur une grille de 10 ms : 33 ms est stocké comme 30, ce qui joue l’animation à 33.3 images par seconde au lieu de 30. Plus profondément, tous les grands navigateurs remplacent un délai de 10 ms ou moins par 100 ms, une règle héritée de Netscape que rien ne signale. Le curseur s’arrête à 20 ms. Les cases par image acceptent 10, et si vous le saisissez, l’outil avertit en rouge que les navigateurs le remplaceront par 100 ms, et l’aperçu joue à la vitesse plus lente qu’aura réellement le fichier.
Couleurs et tramage
Colours propose 32, 64, 128 (la valeur de départ) et 255, le maximum que permet le format une fois un emplacement réservé à la transparence. Une palette unique est construite à partir de toutes les images et partagée, ce qui évite aux aplats de changer de couleur d’une image à l’autre. Dithering on (tramage activé) masque les cassures de dégradé en dispersant l’erreur, et alourdit généralement le fichier, car les pixels dispersés laissent moins de suites à écraser au LZW. Moins de couleurs allègent bien un GIF, au prix de cassures visibles dans les dégradés ; les mesures vidéo en GIF chiffrent ce compromis.
Le GIF a un seul emplacement de palette entièrement transparent et aucune transparence partielle : une image PNG aux bords adoucis est donc aplatie sur la couleur de fond que vous avez choisie plutôt que laissée avec une frange irrégulière.
Les autres méthodes
FFmpeg peut créer un GIF à partir d’images fixes numérotées, avec une palette partagée :
ffmpeg -framerate 2 -i frame%03d.png -vf "split[a][b];[a]palettegen[p];[b][p]paletteuse" out.gif
-framerate 2 affiche deux images par seconde, soit 500 ms par image (1 000 ÷ 2). frame%03d.png lit des fichiers numérotés sur trois chiffres, à partir de frame001.png. La chaîne de filtres génère une palette à partir des images puis l’applique : c’est la même idée de palette partagée que celle de l’outil. Ni macOS ni Windows n’intègrent de moyen de créer un GIF animé que nous pourrions vous indiquer.
Avant même d’en créer un, vérifiez si la destination accepte la vidéo. La même animation en MP4 ou en WebM est couramment de dix à cinquante fois plus légère et plus fluide ; le GIF est la bonne réponse quand la destination n’accepte que des images.
Vérifier que rien n’a été envoyé
Ouvrez les outils de développement de votre navigateur sur l’onglet Network avant de créer le GIF. Le premier appui sur Build the GIF récupère l’encodeur, 11.6 Ko compressé en gzip, depuis ce site ; aucune requête n’emporte vos images où que ce soit, car elles sont assemblées et encodées dans l’onglet.
Créez le vôtre dans le GIF maker, et lisez le poids avant d’appuyer sur le bouton. Si les images doivent d’abord être recadrées ou redressées, faites-le dans l’éditeur d’images, qui les encode une seule fois au lieu de trois.