Subir un archivo
  1. base64hub
  2. Herramientas de imagen
  3. Base64 a GIF

Base64 a GIF

Pega el Base64 de un GIF y la animación se reproduce aquí mismo. Descárgalo como .gif con todos sus fotogramas, tiempos y transparencia intactos.

Gratis sin registro, sin límites Local no se sube nada Se reproduce vista previa de la animación antes de guardar Actualizado 27 oct 2026
Entrada –Salida –Tamaño –

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo convertir Base64 a GIF

  1. Pega el Base64 o una URI data:image/gif;base64,... en el cuadro, o abre un archivo .txt que lo contenga.
  2. Comprueba que la línea de estado dice Detectado GIF. La vista previa empieza a reproducir la animación y el tamaño en píxeles aparece encima.
  3. Pulsa Descargar archivo para guardarlo como .gif.

No se vuelve a dibujar ni a comprimir nada. El archivo guardado tiene los mismos fotogramas, retardos, paleta y transparencia que el GIF que se codificó.

¿Es de verdad un GIF y está animado?

Un GIF empieza por GIF89a o GIF87a, que en Base64 es R0lGODlh o R0lGODdh. La animación, la transparencia y el control de repetición necesitan la versión 89a, más reciente, así que una cadena que empieza por R0lGODdh es en la práctica una imagen fija.

Que un archivo 89a se mueva depende de su contenido: un bloque de imagen o muchos. La vista previa te lo dice de un vistazo. Para mirar más de cerca, abre Mostrar volcado hex. Los GIF animados suelen llevar el texto NETSCAPE2.0 en la columna ASCII; es el bloque que guarda el número de repeticiones. Con una tabla de colores pequeña aparece en las primeras líneas. Un GIF con la tabla completa de 256 colores lleva antes 768 bytes de paleta, lo que empuja el bloque más allá de los 512 bytes que muestra el volcado.

Si la página dice «Esto parece WebP, no GIF» o menciona MP4, el «GIF» se convirtió por el camino. Las apps de mensajería y los buscadores de GIF suelen entregar las animaciones como WebP o vídeo MP4 porque ocupan mucho menos. Usa Descargar como para guardarlo con su extensión real, o ábrelo en Base64 a vídeo si es un MP4.

Fotogramas, tiempos y repeticiones en código

Para inspeccionar un GIF sin abrir un editor, Pillow lee todo lo necesario:

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"),
        }

Para una animación de prueba de 3 fotogramas con 100 ms por fotograma devuelve {'size': (20, 20), 'frames': 3, 'total_ms': 300, 'loop': 0}. Un loop de 0 significa «repetir siempre»; None significa que el archivo no tiene bloque de repetición y se reproduce una vez. Más sobre el manejo de archivos en Base64 en Python.

De dónde salen los GIF en Base64

  • Spinners de carga en CSS y HTML incrustados como data:image/gif;base64,..., una costumbre de antes de que las animaciones CSS y SVG fueran habituales.
  • Plantillas antiguas de correo HTML y firmas que incrustaban pequeños logotipos animados.
  • Respuestas de API y exportaciones de chats que incluyen stickers o reacciones como campos Base64.
  • Píxeles de relleno: un GIF de 1×1 usado como src vacío. Su vista previa parece en blanco, así que mira las dimensiones antes de dar por hecho que la decodificación falló.

Tamaño del GIF tras decodificarlo

Un GIF guarda cada fotograma con un esquema de compresión antiguo, así que las animaciones cortas llegan enseguida a los megabytes, y Base64 añade un tercio más. La fila Tamaño muestra el tamaño decodificado: si una cadena de un GIF «pequeño» ocupa 5 MB, el GIF ronda los 3,75 MB. Decodificarlo aquí no es problema, pero no es buen candidato para volver a incrustarlo en una página. Si lo vas a rehacer, un bucle corto en MP4 o WebM suele ocupar una fracción. Para codificar un GIF, usa GIF a Base64.

Preguntas frecuentes

¿Por qué mi GIF decodificado solo se reproduce una vez?

La repetición es un ajuste del propio archivo. Sin un bloque NETSCAPE2.0, o con un número de repeticiones de 1, los navegadores reproducen la animación una vez y se quedan en el último fotograma. La decodificación respeta lo que diga el archivo; cámbialo en un editor de GIF.

¿Cómo cuento los fotogramas de un GIF en Base64?

La vista previa reproduce el GIF pero no cuenta los fotogramas. En Python, n_frames de Pillow da el número, y la suma de la duration de cada fotograma da la duración total; el fragmento de esta página hace ambas cosas.

¿Por qué el GIF se para a la mitad o muestra el último fotograma roto?

El Base64 se cortó. Los navegadores reproducen los fotogramas que llegaron y se detienen donde terminan los datos. Un GIF completo acaba con el byte final 3B, así que su Base64 suele terminar en ADs=, Ow== o A7.