Charger un fichier
  1. base64hub
  2. Outils images
  3. Base64 en GIF

Base64 en GIF

Collez le Base64 d’un GIF et l’animation se lance ici même. Téléchargez-le en .gif avec toutes ses images, son timing et sa transparence intacts.

Gratuit sans inscription, sans limites Local rien n'est envoyé Lecture animation prévisualisée avant l'enregistrement Mis à jour 27 oct. 2026
Entrée –Sortie –Taille –

Traité dans votre navigateur. Cette page ne peut envoyer vos données nulle part – comment le savons-nous

Comment convertir du Base64 en GIF

  1. Collez le Base64 ou une URI data:image/gif;base64,... dans la zone, ou ouvrez un fichier .txt qui le contient.
  2. Vérifiez que la ligne d’état affiche Détecté GIF. L’aperçu lance l’animation, et les dimensions en pixels sont indiquées au-dessus.
  3. Appuyez sur Télécharger le fichier pour l’enregistrer en .gif.

Rien n’est redessiné ni recompressé. Le fichier enregistré a les mêmes images, délais, palette et transparence que le GIF qui avait été encodé.

Est-ce vraiment un GIF, et est-il animé ?

Un GIF commence par GIF89a ou GIF87a, soit R0lGODlh ou R0lGODdh en Base64. L’animation, la transparence et le contrôle de la boucle exigent tous la version 89a, plus récente : une chaîne qui commence par R0lGODdh est donc en pratique une image fixe.

Qu’un fichier 89a bouge ou non dépend de son contenu : un seul bloc d’image ou plusieurs. L’aperçu vous le montre d’un coup d’œil. Pour regarder de plus près, ouvrez Afficher le dump hex. Les GIF animés contiennent en général le texte NETSCAPE2.0 dans la colonne ASCII ; c’est le bloc qui contient le nombre de boucles. Avec une petite table de couleurs, il se trouve dans les premières lignes. Un GIF avec une table complète de 256 couleurs commence par 768 octets de palette, ce qui repousse le bloc au-delà des 512 octets affichés par le dump.

Si la page indique « Cela ressemble à WebP, pas à un fichier GIF » ou nomme MP4, le « GIF » a été converti en route. Les messageries et les services de recherche de GIF livrent souvent les animations en WebP ou en vidéo MP4, bien plus légers. Utilisez Télécharger en pour l’enregistrer sous sa vraie extension, ou ouvrez-le dans Base64 en vidéo s’il s’agit d’un MP4.

Images, timing et boucles dans le code

Pour inspecter un GIF sans ouvrir d’éditeur, Pillow lit tout ce dont vous avez besoin :

import base64, io
from PIL import Image

def gif_info(b64: str) -> dict:
    data = base64.b64decode(b64.split(",", 1)[-1])
    with Image.open(io.BytesIO(data)) as im:
        durations = []
        for i in range(getattr(im, "n_frames", 1)):
            im.seek(i)
            durations.append(im.info.get("duration", 0))
        return {
            "size": im.size,
            "frames": len(durations),
            "total_ms": sum(durations),
            "loop": im.info.get("loop"),
        }

Pour une animation de test de 3 images à 100 ms chacune, la fonction renvoie {'size': (20, 20), 'frames': 3, 'total_ms': 300, 'loop': 0}. Un loop de 0 signifie « répéter indéfiniment » ; None signifie que le fichier n’a pas de bloc de boucle et se joue une fois. Plus de détails sur la manipulation de fichiers dans Base64 en Python.

D’où viennent les GIF en Base64

  • Les indicateurs de chargement en CSS et HTML intégrés sous la forme data:image/gif;base64,..., une habitude d’avant la généralisation des animations CSS et du SVG.
  • Les anciens modèles d’e-mails HTML et les signatures qui intégraient de petits logos animés.
  • Les réponses d’API et les exports de chats qui incluent des stickers ou des réactions dans des champs Base64.
  • Les pixels de remplissage : un GIF de 1×1 utilisé comme src vide. Son aperçu semble vide : vérifiez donc les dimensions avant de conclure que le décodage a échoué.

Taille d’un GIF après décodage

Un GIF stocke chaque image avec un ancien schéma de compression : de courtes animations atteignent vite plusieurs mégaoctets, et Base64 ajoute un tiers par-dessus. La ligne Taille affiche la taille décodée : si une chaîne GIF « légère » fait 5 Mo, le GIF fait environ 3,75 Mo. Le décoder ici ne pose aucun problème, mais c’est un mauvais candidat pour une réintégration dans une page. Si vous le retravaillez, une courte boucle MP4 ou WebM ne pèse en général qu’une fraction de cette taille. Pour encoder un GIF, utilisez GIF en Base64.

FAQ

Pourquoi mon GIF décodé ne se joue-t-il qu'une fois ?

Le réglage de boucle fait partie du fichier. Sans bloc NETSCAPE2.0, ou avec un nombre de boucles de 1, les navigateurs jouent l’animation une fois et s’arrêtent sur la dernière image. Le décodage conserve ce qu’indique le fichier ; modifiez-le dans un éditeur de GIF.

Comment compter les images d'un GIF Base64 ?

L’aperçu joue le GIF mais ne compte pas les images. En Python, n_frames de Pillow donne leur nombre, et la somme des duration de chaque image donne la durée totale ; l’extrait de cette page fait les deux.

Pourquoi le GIF s'arrête-t-il à mi-chemin ou affiche-t-il une dernière image cassée ?

Le Base64 a été tronqué. Les navigateurs jouent les images reçues et s’arrêtent là où les données s’arrêtent. Un GIF complet se termine par l’octet de fin 3B : son Base64 finit donc en général par ADs=, Ow== ou A7.