Enviar um arquivo
  1. base64hub
  2. Ferramentas de imagem
  3. Base64 para WebP

Base64 para WebP

Cole o Base64 de um WebP ou um URI data:image/webp para ver a imagem e salvá-la como arquivo .webp. Os primeiros caracteres da string já dizem que tipo de WebP é.

Grátis sem cadastro, sem limites Local nada é enviado Atualizado 27 de out. de 2026
Entrada –Saída –Tamanho –

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como converter Base64 para WebP

  1. Cole o Base64 ou o URI completo data:image/webp;base64,.... Código que contenha um deles, como um url() de CSS ou uma tag <img>, também funciona.
  2. Confira se a linha de status mostra Detectado WebP, depois veja a prévia e as dimensões acima dela. WebP animado roda na prévia.
  3. Clique em Baixar arquivo. A extensão já vem como webp.

Os três tipos de WebP

WebP é um contêiner RIFF com um de três tipos de chunk logo depois da tag WEBP. Como a tag fica em um offset fixo, o tipo também aparece em uma posição fixa do Base64:

O Base64 começa comChunkO que é
UklGR…XRUJQVlA4IVP8com perdas, sem transparência
UklGR…XRUJQVlA4TVP8Lsem perdas, pode ter transparência
UklGR…XRUJQVlA4WVP8Xestendido: com perdas e canal alfa, animação, perfil ICC ou EXIF

Os seis caracteres entre UklGR e XRUJQ codificam o tamanho do arquivo e mudam de um arquivo para outro. XRUJQ (de WEBP) sempre ocupa os caracteres 12 a 16, e VlA4 (de VP8), os caracteres 17 a 20. O 21º caractere é o que interessa: I, T ou W.

O tipo decide o que acontece quando você converte o arquivo. WebP sem perdas substitui bem um PNG. WebP com perdas já perdeu detalhes, então convertê-lo para PNG gera um arquivo grande sem recuperar a qualidade. Um arquivo estendido pode ter vários quadros; ao convertê-lo para um formato estático, só o primeiro fica.

Como verificar o tipo de WebP no código

O mesmo teste em Python lê a tag do chunk e, nos arquivos estendidos, o 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)

Para arquivos WebP gravados pelo Pillow, a função devolve lossy, lossless, extended, alpha para uma imagem com perdas e transparência, e extended, animated para uma animação. Mais em Base64 em Python.

RIFF nem sempre é WebP

UklGR significa apenas “RIFF”. Áudio WAV e vídeo AVI começam do mesmo jeito e se diferenciam pela tag nos bytes 8 a 11. O decodificador verifica essa tag, então um WAV colado aqui aparece como “Isto parece ser WAV, não WebP”, com um botão para salvá-lo como .wav. O Base64 para áudio toca o arquivo.

Onde aparece Base64 de WebP

  • Exportações de canvas com toDataURL("image/webp", quality). Confira o resultado: navegadores sem codificador WebP devolvem PNG sem avisar.
  • APIs de imagem e CDNs que entregam WebP a qualquer cliente que o aceite. Se a imagem foi buscada por um navegador, até um campo chamado thumbnail_jpg pode conter WebP.
  • Placeholders e ícones inline em HTML e CSS, onde o WebP gera uma string mais curta que PNG ou JPEG.
  • Figurinhas de chat, que muitas vezes são WebP, às vezes animadas.

Quando um programa antigo recusa o arquivo salvo, compare o SHA-256 mostrado aqui com o do arquivo que ele recebeu. Se forem iguais, o programa não lê WebP, e a saída é uma cópia em PNG ou JPEG.

Perguntas frequentes

Meu WebP em Base64 é com perdas ou sem perdas?

Olhe o 21º caractere da string. I depois de VlA4 indica uma imagem VP8 com perdas, T uma imagem VP8L sem perdas, e W o formato estendido, usado por imagens com perdas que têm transparência ou por animações.

Dá para salvar o WebP decodificado como PNG ou JPG?

Não apenas renomeando; os bytes continuam sendo WebP. Baixe o .webp, depois use WebP para Base64 com Converter para PNG ou JPEG e decodifique a nova string em Base64 para PNG.

Por que canvas.toDataURL('image/webp') me devolveu um PNG?

Navegadores que não conseguem codificar WebP, o Safari em especial, devolvem em silêncio um data URI PNG. Cole o resultado aqui: se aparecer PNG, foi isso que aconteceu.

Por que a prévia falha em um Mac ou iPhone mais antigo?

O Safari 14 e 15 só exibem WebP no macOS 11 Big Sur ou posterior, e o Safari anterior ao 14 não exibe. Nesses casos a prévia diz que o navegador não consegue exibir a imagem, mas Baixar arquivo ainda salva um .webp válido.