Imagem vetorial SVG (.svg)

W3C Padrão

Scalable Vector Graphics (SVG) é um formato de imagem vetorial baseado em XML para gráficos bidimensionais que oferece suporte a interatividade, estilos CSS e animações.

Converter SVG para PNG

Conversor gratuito de SVG para PNG no navegador. Converta arquivos instantaneamente no seu dispositivo.

Comprimir SVG online

Privado - os arquivos nunca saem do seu dispositivo

Inspeção e metadados

Sistemas operacionais e analisadores de arquivos identificam arquivos SVG pela sequência inicial de bytes:

Selecione ou solte os arquivos aqui

Privado - os arquivos nunca saem do seu dispositivo

ou colar Ctrl+V
Garantia de privacidade sem transmissão pela rede 0 bytes enviados a servidores externos. Todo o processamento ocorreu localmente no ambiente isolado do navegador.

Assinatura do arquivo em bytes (magic bytes)

Sistemas operacionais e analisadores de arquivos identificam arquivos SVG pela sequência inicial de bytes:

ASSINATURA HEXADECIMAL (DESLOCAMENTO 0):

3C 73 76 67

REPRESENTAÇÃO ASCII: <svg

Padronização: W3C Recommendation (SVG 1.1 / SVG 2)

Especificações técnicas

Estrutura do contêinerDocumento de marcação de texto baseado em XML que define geometria vetorial 2D
CompressãoCompressão de texto Gzip / Brotli (SVGZ usa compressão gzip)
Ordem dos bytes (endianness)Não se aplica (fluxo de caracteres baseado em texto, codificado em UTF-8 ou UTF-16)
Espaços de corsRGB, CSS Color Module 4 (Display P3, lab, lch)
Canais e EstruturaFormas vetoriais de resolução ilimitada, curvas de Bézier, tipografia e máscaras de opacidade
Dimensões MáximasIndependente de resolução (pode ser ampliado para qualquer área de visualização sem pixelização)
TransparênciaTransparência alfa totalmente variável e modos de mesclagem CSS
Streaming e ProgressivoO analisador XML do navegador permite analisar progressivamente o fluxo de texto

Matriz de comparação técnica: SVG e formatos concorrentes

Atributo técnicoSVG (Atual)HTML5 CanvasPDFPNG
Modelo de renderizaçãoDOM vetorial em modo retidoCanvas bitmap em modo imediatoContêiner de página fixa em modo retidoGrade de pixels raster
Estilos e CSSTotalmente estilizado por meio de classes e variáveis CSSExige redesenhar o canvas por meio da API JavaScriptSem estilização CSS dinâmicaPixels raster fixos
Escalabilidade infinitaSim (curvas vetoriais matemáticas)Requer dimensionamento manual de resoluçãoSim (elementos vetoriais)Não (pixeliza quando ampliado)
InteratividadeEventos nativos do DOM (passar o cursor, clicar e animar)Exige cálculos manuais para detectar os elementos atingidosDocumento estáticoExige um mapa de imagem ou canvas

Modos comuns de corrupção e guia de recuperação com editor hexadecimal

O navegador exibe XML Parsing Error: unclosed token or mismatched tag.

Causa principal: Sintaxe XML malformada, tags de fechamento ausentes ou sinais de e comercial sem escape ("&" em vez de "&amp;").

Recuperação: Valide o arquivo com um validador XML (xmllint file.svg) e corrija as tags sem correspondência.

Análise de segurança e vetores de ataque a analisadores

Como o SVG é um XML executável que suporta tags '<script>' e entidades externas, ele apresenta riscos significativos de XSS e SSRF se SVGs não confiáveis forem exibidos.

Vetores de ataque conhecidos

  • Script entre sites armazenado (XSS) por meio de tags <script> incorporadas ou manipuladores de eventos onload=.
  • Ataques de entidade externa XML (XXE) que leem arquivos locais do servidor quando o SVG é analisado em servidores de back-end.
  • A expansão de entidades XML do tipo Billion Laughs pode causar negação de serviço.

Melhores práticas defensivas: Sempre sanitize SVGs com DOMPurify antes de incorporá-los ou sirva-os com a política Content-Security-Policy: default-src none. Também é possível usar tags <img>, que desativam scripts automaticamente.

Origens históricas e marcos

2018A recomendação candidata do W3C para SVG 2 incorpora os recursos modernos de CSS.
2011A segunda edição do SVG 1.1 padroniza o suporte universal em navegadores para dispositivos móveis e computadores.
2001O W3C publica a especificação SVG 1.0, desenvolvida a partir das propostas VML e PGML.

Principais vantagens

  • Escala infinitamente sem perder resolução: linhas e tipografia permanecem nítidas em qualquer tamanho de tela ou impressão.
  • Arquivos muito pequenos para logotipos, ícones e elementos de interface do usuário.
  • Pode ser totalmente programado e estilizado com CSS e JavaScript no DOM do navegador.

Limitações técnicas e desvantagens

  • Inadequado para fotos ou imagens complexas com tons contínuos.
  • Caminhos vetoriais complexos com milhares de nós podem causar atraso na renderização da CPU e alto consumo de bateria.
  • Por ser baseado em XML, permite scripts incorporados e exige sanitização rigorosa antes da renderização de arquivos não confiáveis.

Curiosidades técnicas

  • Como o SVG é texto XML simples, compactá-lo com Gzip (gerando um arquivo .svgz) costuma reduzir seu tamanho em 70% - 80%.
  • O atributo viewBox define uma área de coordenadas abstrata que é mapeada dinamicamente para os pixels físicos da tela.
  • Os primeiros navegadores não tinham suporte nativo a SVG. Por isso, a Adobe distribuiu o plugin Adobe SVG Viewer até que o suporte nativo se consolidasse, por volta de 2011.

Perguntas técnicas frequentes

Arquivos SVG podem conter código malicioso?

Sim. Como SVG é XML válido, pode conter JavaScript incorporado (<script>) que é executado se o arquivo for carregado diretamente no navegador ou aberto como elemento <svg> embutido. Servir SVGs com uma tag <img> neutraliza automaticamente a execução de scripts.

Quando devo usar SVG em vez de PNG?

Use SVG para ícones, logotipos, gráficos, ilustrações e tipografia que precisam ser ampliados com nitidez em telas de qualquer tamanho e ocupar pouco espaço. Use PNG ou WebP para fotos.

Como posso otimizar arquivos SVG grandes ou complexos?

Você pode limpar caminhos vetoriais removendo metadados redundantes, comentários de editores (do Inkscape ou Illustrator), grupos invisíveis e declarações de namespace não usadas, com ferramentas como o SVGO ou a compactação de SVG.