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

Base64 a WebP

Pega Base64 de un WebP o una URI data:image/webp para previsualizar la imagen y guardarla como archivo .webp. Los primeros caracteres de la cadena ya te dicen qué tipo de WebP es.

Gratis sin registro, sin límites Local no se sube nada 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 WebP

  1. Pega el Base64 o la URI completa data:image/webp;base64,.... También sirve código que la contenga, como un url() de CSS o una etiqueta <img>.
  2. Comprueba que la línea de estado diga Detectado WebP y mira la vista previa y las dimensiones que aparecen encima. Los WebP animados se reproducen en la vista previa.
  3. Pulsa Descargar archivo. La extensión ya viene puesta como webp.

Tres tipos de WebP

WebP es un contenedor RIFF con uno de tres tipos de chunk justo después de la etiqueta WEBP. Como la etiqueta está en un desplazamiento fijo, el tipo también aparece en un lugar fijo del Base64:

El Base64 empieza porChunkQué es
UklGR…XRUJQVlA4IVP8con pérdida, sin transparencia
UklGR…XRUJQVlA4TVP8Lsin pérdida, puede incluir transparencia
UklGR…XRUJQVlA4WVP8Xextendido: con pérdida y canal alfa, animación, perfil ICC o EXIF

Los seis caracteres entre UklGR y XRUJQ codifican el tamaño del archivo y cambian de un archivo a otro. XRUJQ (de WEBP) siempre ocupa los caracteres 12 a 16 y VlA4 (de VP8) los caracteres 17 a 20. El carácter 21 es el que te interesa: I, T o W.

El tipo decide qué pasa cuando conviertes el archivo. Un WebP sin pérdida sustituye bien a un PNG. Un WebP con pérdida ya ha perdido detalle, así que convertirlo a PNG da un archivo grande sin recuperar calidad. Un archivo extendido puede contener varios fotogramas; al convertirlo a un formato estático solo se conserva el primero.

Comprobar el tipo de WebP desde código

La misma prueba en Python lee la etiqueta del chunk y, en los archivos extendidos, el byte de flags:

import base64

def webp_kind(b64: str) -> str:
    data = base64.b64decode(b64.split(",", 1)[-1])
    if data[:4] != b"RIFF" or data[8:12] != b"WEBP":
        return "not WebP"
    chunk = data[12:16]
    if chunk == b"VP8 ":
        return "lossy"
    if chunk == b"VP8L":
        return "lossless"
    flags = data[20]
    parts = ["extended"]
    if flags & 0x10:
        parts.append("alpha")
    if flags & 0x02:
        parts.append("animated")
    return ", ".join(parts)

Con archivos WebP escritos por Pillow devuelve lossy, lossless, extended, alpha para una imagen con pérdida y transparencia, y extended, animated para una animación. Más en Base64 en Python.

RIFF no siempre es WebP

UklGR solo significa “RIFF”. El audio WAV y el vídeo AVI empiezan igual y se distinguen por la etiqueta de los bytes 8 a 11. El decodificador comprueba esa etiqueta, así que un WAV pegado aquí aparece como “Esto parece WAV, no WebP”, con un botón para guardarlo como .wav. Base64 a audio lo reproduce.

Dónde aparece el Base64 de WebP

  • Exportaciones de canvas con toDataURL("image/webp", quality). Comprueba el resultado: los navegadores sin codificador WebP devuelven PNG sin avisar.
  • API de imágenes y CDN que sirven WebP a cualquier cliente que lo acepte. Si la imagen la descargó un navegador, incluso un campo llamado thumbnail_jpg puede contener WebP.
  • Marcadores de posición e iconos en línea en HTML y CSS, donde WebP da una cadena más corta que PNG o JPEG.
  • Stickers de chat, que a menudo son WebP, a veces animados.

Si un programa antiguo rechaza el archivo guardado, compara el SHA-256 que se muestra aquí con el del archivo que recibió. Si coinciden, el programa no lee WebP, y la salida es una copia en PNG o JPEG.

Preguntas frecuentes

¿Mi WebP en Base64 es con pérdida o sin pérdida?

Mira el carácter 21 de la cadena. Una I después de VlA4 indica una imagen VP8 con pérdida, una T una imagen VP8L sin pérdida, y una W el formato extendido, que usan las imágenes con pérdida y transparencia y las animaciones.

¿Puedo guardar el WebP decodificado como PNG o JPG?

No basta con cambiarle el nombre; los bytes siguen siendo WebP. Descarga el .webp, pásalo por WebP a Base64 con Convertir a PNG o JPEG y decodifica la nueva cadena en Base64 a PNG.

¿Por qué canvas.toDataURL('image/webp') me devolvió un PNG?

Los navegadores que no saben codificar WebP, Safari en particular, devuelven en silencio una data URI PNG. Pega el resultado aquí: si dice PNG, eso es lo que pasó.

¿Por qué falla la vista previa en un Mac o iPhone antiguo?

Safari 14 y 15 solo muestran WebP en macOS 11 Big Sur o posterior, y Safari anterior a la 14 no lo muestra en absoluto. En esos casos la vista previa indica que el navegador no puede mostrar la imagen, pero Descargar archivo sigue guardando un .webp válido.