sample-ico-favicon-multi-res-16-32-48.ico
Dimensões:16×16, 32×32, 48×48
4,9 KB
ICO Baixar exemplo ICOICO · 5 arquivos ICO de exemplo disponíveis
Baixe arquivos ICO de exemplo gratuitos, incluindo favicons web multirresolução, pacotes de ícones para aplicativos Windows, recursos retina e DIB clássicos.
Suite de testes ICO
5 arquivos ICO de exemplo disponíveis
sample-ico-favicon-multi-res-16-32-48.ico
Dimensões:16×16, 32×32, 48×48
4,9 KB
ICO Baixar exemplo ICOsample-ico-app-complete-16-to-256.ico
Dimensões:16×16 to 256×256
20,3 KB
ICO Baixar exemplo ICOsample-ico-high-res-256x256.ico
Dimensões:256×256
10 KB
ICO Baixar exemplo ICOsample-ico-standard-32x32.ico
Dimensões:32×32
1,4 KB
ICO Baixar exemplo ICOsample-ico-classic-dib-32x32.ico
Dimensões:32×32
4,2 KB
ICO Baixar exemplo ICOEspecificação técnica e guia
O formato de ícone da Microsoft Windows (.ico) é um contêiner de imagem projetado para agrupar múltiplos bitmaps e imagens PNG comprimidas em diversas resoluções, profundidades de cor e paletas em um único arquivo físico. Criado no Windows 1.0 (1985) e adotado como padrão universal de favicon pelo Internet Explorer 5 em 1999, o ICO permanece indispensável para a iconografia do sistema e a identidade em abas de navegadores.
Lançado em 1985 com o Microsoft Windows 1.0, o formato ICO encapsulava bitmaps monocromáticos de tamanho fixo (1 bit, 32×32 pixels). Com o Windows 3.0 e 95, as paletas evoluíram para 16 cores (EGA de 4 bits) e 256 cores (VGA de 8 bits), adicionando uma máscara booleana AND de transparência de 1 bit junto à matriz de cor XOR.
No Windows XP (2001), a Microsoft introduziu ícones RGBA de 32 bits com canal alfa verdadeiro de 8 bits (256 níveis de sombreamento e suavização de bordas) em estruturas DIB (Device-Independent Bitmap).
O Windows Vista (2006) trouxe a modernização estrutural mais importante: o suporte nativo a fluxos PNG comprimidos com Deflate dentro do contêiner ICO para ativos de 256×256 pixels em alta densidade, reduzindo arquivos de vários megabytes para poucos kilobytes mantendo compatibilidade com imagens DIB anteriores.
Na web, o Internet Explorer 5 (março de 1999) introduziu o /favicon.ico na raiz do servidor. Padronizado pelo W3C e WHATWG, os navegadores buscam automaticamente o /favicon.ico para exibir em abas, favoritos e telas iniciais de smartphones.
Um arquivo ICO começa com um cabeçalho de 6 bytes (ICONDIR): dois bytes zero reservados (0x0000), um tipo de 2 bytes (0x0001 para ICO, 0x0002 para cursor .cur) e um inteiro de 2 bytes indicando o total de subimagens (idCount).
Logo em seguida vem uma matriz contígua de entradas de diretório de 16 bytes (ICONDIRENTRY). Cada entrada define largura (1 byte; 0 representa 256 px), altura (1 byte; 0 representa 256 px), total de cores (1 byte), reservado (0x00), planos de cor (2 bytes), bits por pixel (2 bytes, ex. 32 para RGBA), tamanho em bytes (4 bytes) e deslocamento absoluto no arquivo (4 bytes).
As imagens internas seguem dois formatos binários: DIB clássico ou fluxo PNG. Em ícones DIB, a imagem inicia com um BITMAPINFOHEADER de 40 bytes onde biHeight tem o dobro da altura visual (altura * 2) para conter a matriz de pixels XOR e a máscara de transparência AND.
Em ícones PNG (desde o Windows Vista), a carga inicia com a assinatura PNG de 8 bytes (0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A), seguida pelas seções padrão IHDR, IDAT e IEND. Isso viabiliza compressão Deflate altamente eficiente para 256×256, 128×128 e 64×64 pixels.
Empacotamento multirresolução: Um único arquivo .ico contém ativos ajustados para 16×16 (aba do navegador / barra de tarefas), 32×32 (ícone de desktop / explorer padrão), 48×48 (explorer grande) e 256×256 (retina / exibição extra grande), evitando distorções visuais.
Transparência alfa real de 8 bits: Ícones RGBA de 32 bits oferecem 256 níveis de opacidade, permitindo sombras suaves e encaixe perfeito sobre temas claros ou escuros do sistema operacional.
Suporte universal nativo em navegadores: Todos os navegadores web reconhecem /favicon.ico automaticamente sem demandar tags HTML extras ou scripts.
Mecanismo de compressão híbrido: Combina decodificação DIB imediata para tamanhos pequenos (16×16 e 32×32) com compressão Deflate PNG para resoluções grandes.
Microsoft Windows: Suporte nativo em todas as edições do Windows (do 1.0 ao Windows 11) para atalhos de área de trabalho, arquivos executáveis (.exe, .dll) e barras de título.
Navegadores web: Suporte universal no Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Edge, Opera e Internet Explorer.
Softwares gráficos: Adobe Photoshop (com plugin ICOFormat), GIMP (suporte nativo completo), Inkscape, ImageMagick, IcoFX e Axialis IconWorkshop.
Ambientes de desenvolvimento: Visual Studio, Electron, Node.js (sharp, png-to-ico), Python (Pillow), Go, Rust e .NET System.Drawing.Icon.
Compare as propriedades do contêiner Microsoft ICO com formatos raster independentes, gráficos vetoriais e cursores de mouse do Windows.
| Característica técnica | ICO (Contêiner de ícone) | PNG (Raster portátil) | SVG (Gráfico vetorial) | WebP (Raster moderno) | CUR (Cursor do Windows) | Observações práticas |
|---|---|---|---|---|---|---|
| Tipo de contêiner | Contêiner multi-imagem (DIB/PNG) | Fluxo de imagem única | Documento vetorial XML | Raster único/múltiplo RIFF | Contêiner de cursor único/múltiplo | ICO e CUR reúnem múltiplas resoluções distintas em um só arquivo. |
| Suporte a resoluções | Múltiplos tamanhos fixos (16 a 256 px) | Dimensão fixa única | Resolução infinitamente escalável | Dimensão fixa única | Múltiplos tamanhos fixos (16 a 128 px) | SVG escala matematicamente, enquanto ICO preserva o desenho exato pixel por pixel em 16×16. |
| Ponto de clique (Hotspot) | Nenhum (âncora centralizada) | Não aplicável | Não aplicável | Não aplicável | Coordenadas X/Y (2 bytes cada) | CUR tem estrutura idêntica ao ICO, mudando apenas tipo=2 e coordenadas de ponto ativo. |
| Compressão | Híbrida (DIB não comprimido + PNG Deflate) | Deflate (ZLIB sem perdas) | Texto simples / Gzip (SVGZ) | VP8 / VP8L com e sem perdas | Fluxo DIB ou PNG | ICO utiliza compressão PNG para quadros de 256×256 desde o Windows Vista. |
| Busca automática web | Sim (/favicon.ico automático) | Requer <link rel="icon"> | Requer <link rel="icon"> | Requer <link rel="icon"> | Utilizado via propriedade CSS cursor | Navegadores realizam requisição HTTP GET implícita para /favicon.ico. |
| Cores e transparência | 1 bit, 4 bits, 8 bits, 32 bits RGBA | Truecolor 24 bits + alfa 8/16 bits | Espaço de cor CSS / sRGB / P3 | RGB de 24 bits + alfa de 8 bits | Máscara de 1 bit ou alfa RGBA de 32 bits | Tanto ICO quanto PNG aceitam sombras translúcidas suaves de 256 níveis. |
Códigos prontos para produção para declarar favicons em HTML, compilar arquivos ICO no Node.js com sharp, exportar com Python Pillow e gerar com ImageMagick.
HTML5 Favicon & Web Manifest Declaration:
<!-- Declaração padrão de Favicon e Manifesto HTML5 -->
<!-- 1. Compatibilidade universal clássica (/favicon.ico) -->
<link rel="shortcut icon" href="/favicon.ico" sizes="16x16 32x32 48x48">
<!-- 2. Ícones PNG em alta resolução para abas de navegadores modernos -->
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<!-- 3. Ícone vetorial SVG escalável com suporte a modo escuro -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<!-- 4. Apple Touch Icon para tela de início no iOS -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<!-- 5. Manifesto Web App para Chrome Android e aplicações PWA -->
<link rel="manifest" href="/site.webmanifest">Node.js (Sharp & png-to-ico Packaging):
// Node.js: Gerar arquivo ICO multirresolução com sharp e png-to-ico
import { writeFileSync } from 'node:fs';
import pngToIco from 'png-to-ico';
import sharp from 'sharp';
async function generateMultiResIco(masterSvgPath, outputPath) {
const sizes = [16, 32, 48, 64, 128, 256];
const pngBuffers = [];
for (const size of sizes) {
const buf = await sharp(masterSvgPath)
.resize(size, size, { fit: 'contain', background: { r: 0, g: 0, b: 0, alpha: 0 } })
.png({ compressionLevel: 9 })
.toBuffer();
pngBuffers.push(buf);
}
const icoBuffer = await pngToIco(pngBuffers);
writeFileSync(outputPath, icoBuffer);
console.log(`ICO gerado: ${outputPath} (${icoBuffer.length} bytes, 6 tamanhos)`);
}Python (Pillow Multi-Resolution Export):
# Python: Gerar arquivo ICO com múltiplas resoluções usando Pillow (PIL)
from PIL import Image
def create_ico(source_path, output_path):
img = Image.open(source_path).convert("RGBA")
icon_sizes = [(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (256, 256)]
img.save(
output_path,
format='ICO',
sizes=icon_sizes
)
print(f"ICO salvo em {output_path} com {len(icon_sizes)} tamanhos.")
create_ico("master-logo.png", "favicon.ico")ImageMagick CLI (Multi-Res ICO Compilation):
# ImageMagick CLI: Compilar múltiplos PNGs em um único contêiner ICO
# 1. Gerar frames individuais a partir do vetor original
magick master.svg -resize 16x16 icon-16.png
magick master.svg -resize 32x32 icon-32.png
magick master.svg -resize 48x48 icon-48.png
magick master.svg -resize 256x256 icon-256.png
# 2. Empacotar todos os quadros no arquivo ICO final
magick convert icon-16.png icon-32.png icon-48.png icon-256.png favicon.ico
# 3. Inspecionar frames internos com identify
identify favicon.icoParâmetros técnicos, magic bytes e padrões de codificação do formato Microsoft Windows ICO.
Um arquivo ICO é um contêiner de imagem criado pela Microsoft para armazenar várias versões do mesmo ícone em tamanhos e profundidades de cor diferentes em um único arquivo. Por exemplo, um favicon.ico pode reunir 16×16 px para abas do navegador, 32×32 px para atalhos de desktop e 256×256 px para telas de alta densidade. Com versões desenhadas sob medida para cada dimensão, o sistema operacional e o navegador não precisam esticar ou borrar pixels.
Os arquivos ICO clássicos codificam cada imagem como bitmap independente de dispositivo (DIB), composto por um cabeçalho BITMAPINFOHEADER de 40 bytes, matriz de pixels XOR sem compressão e máscara AND de 1 bit para transparência. Embora econômico para 16×16 e 32×32, um DIB de 256×256 ocupa 262 KB por quadro. Desde o Windows Vista (2006), a especificação passou a permitir imagens PNG comprimidas com Deflate, reduzindo o arquivo para 10–20 KB mantendo o canal alfa de 8 bits.
Sites modernos devem manter ambos. Embora navegadores recentes suportem SVG e PNG via `<link rel="icon">`, milhares de navegadores corporativos legados, leitores RSS, indexadores de motores de busca e crawlers automatizados fazem requisições diretas a `/favicon.ico` na raiz do servidor. Ter um `favicon.ico` multirresolução previne erros 404 nos logs e garante exibição universal.
Ao renderizar um ícone, o shell do Windows calcula a quantidade exata de pixels necessários conforme o nível de escala DPI da tela (100%, 125%, 150% ou 200%). Ele percorre a tabela ICONDIRENTRY do arquivo procurando uma versão idêntica. Caso encontre, exibe diretamente. Se não houver tamanho idêntico, escolhe a versão maior mais próxima e aplica redução bicúbica para manter a nitidez.
ICO e CUR possuem arquitetura binária quase idêntica, diferenciando-se em dois pontos: O segundo byte do cabeçalho indica o tipo (0x0001 para ICO e 0x0002 para CUR). Na entrada de diretório de 16 bytes, os bytes 4 a 7 armazenam planos de cor e bits por pixel no ICO, enquanto no CUR armazenam as coordenadas X e Y do ponto de ativação do clique (hotspot).