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

Base64 en WebP

Collez le Base64 d’un WebP ou une URI data:image/webp pour prévisualiser l’image et l’enregistrer en .webp. Les premiers caractères de la chaîne indiquent déjà de quel type de WebP il s’agit.

Gratuit sans inscription, sans limites Local rien n'est envoyé 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 WebP

  1. Collez le Base64 ou l’URI complète data:image/webp;base64,.... Du code qui en contient une, comme un url() CSS ou une balise <img>, fonctionne aussi.
  2. Vérifiez que la ligne d’état affiche Détecté WebP, puis regardez l’aperçu et les dimensions au-dessus. Un WebP animé se lit dans l’aperçu.
  3. Appuyez sur Télécharger le fichier. L’extension est réglée sur webp.

Trois types de WebP

WebP est un conteneur RIFF avec l’un de trois types de chunk juste après la balise WEBP. Comme la balise se trouve à un offset fixe, le type apparaît aussi à une position fixe dans le Base64 :

Le Base64 commence parChunkCe que c’est
UklGR…XRUJQVlA4IVP8avec perte, sans transparence
UklGR…XRUJQVlA4TVP8Lsans perte, transparence possible
UklGR…XRUJQVlA4WVP8Xétendu : avec perte et alpha, animation, profil ICC ou EXIF

Les six caractères entre UklGR et XRUJQ encodent la taille du fichier et changent d’un fichier à l’autre. XRUJQ (issu de WEBP) occupe toujours les caractères 12 à 16 et VlA4 (issu de VP8) les caractères 17 à 20. C’est le 21e caractère qui vous intéresse : I, T ou W.

Le type décide de ce qui se passe quand vous convertissez le fichier. Le WebP sans perte remplace bien le PNG. Le WebP avec perte a déjà perdu des détails : le convertir en PNG produit un gros fichier sans rendre la qualité. Un fichier étendu peut contenir plusieurs images ; le convertir dans un format fixe ne garde que la première.

Vérifier le type de WebP dans le code

Le même test en Python lit la balise du chunk et, pour les fichiers étendus, l’octet de drapeaux :

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)

Pour des fichiers WebP écrits par Pillow, la fonction renvoie lossy, lossless, extended, alpha pour une image avec perte et transparence, et extended, animated pour une animation. Plus de détails dans Base64 en Python.

RIFF ne veut pas toujours dire WebP

UklGR signifie seulement « RIFF ». L’audio WAV et la vidéo AVI commencent de la même façon et diffèrent par la balise aux octets 8 à 11. Le décodeur vérifie cette balise : un WAV collé ici est signalé par « Cela ressemble à WAV, pas à un fichier WebP » avec un bouton pour l’enregistrer en .wav. Base64 en audio le lit.

Où l’on croise du WebP en Base64

  • Les exports de canvas avec toDataURL("image/webp", quality). Vérifiez le résultat : les navigateurs sans encodeur WebP renvoient discrètement du PNG.
  • Les API d’images et les CDN, qui servent du WebP à tout client qui l’accepte. Si un navigateur a récupéré l’image, même un champ nommé thumbnail_jpg peut contenir du WebP.
  • Les placeholders et les icônes intégrés en HTML et en CSS, où le WebP donne une chaîne plus courte que le PNG ou le JPEG.
  • Les stickers de messagerie, souvent en WebP, parfois animés.

Quand un programme ancien refuse le fichier enregistré, comparez le SHA-256 affiché ici avec celui du fichier qu’il a reçu. S’ils correspondent, le programme ne lit pas le WebP, et une copie en PNG ou en JPEG est la solution.

FAQ

Mon WebP en Base64 est-il avec ou sans perte ?

Regardez le 21e caractère de la chaîne. Un I après VlA4 désigne une image avec perte VP8 , un T une image sans perte VP8L, et un W le format étendu, qu’utilisent les images avec perte dotées de transparence et les animations.

Puis-je enregistrer le WebP décodé en PNG ou JPG ?

Pas en le renommant : les octets restent du WebP. Téléchargez le .webp, puis utilisez WebP en Base64 avec Convertir en PNG ou JPEG et décodez la nouvelle chaîne sur Base64 en PNG.

Pourquoi canvas.toDataURL('image/webp') m'a-t-il donné un PNG ?

Les navigateurs qui ne savent pas encoder le WebP, Safari en particulier, renvoient sans prévenir une data URI PNG. Collez le résultat ici : s’il indique PNG, c’est ce qui s’est passé.

Pourquoi l'aperçu échoue-t-il sur un Mac ou un iPhone ancien ?

Safari 14 et 15 n’affichent le WebP que sur macOS 11 Big Sur ou plus récent, et Safari avant la version 14 pas du tout. L’aperçu indique alors que le navigateur ne peut pas afficher l’image, mais Télécharger le fichier enregistre quand même un .webp valide.