“PNG dentro de ICO” parece estranho à primeira vista, mas é totalmente real e funciona no Windows moderno.
🧩 O que significa “PNG dentro de um ICO”
Um arquivo .ico não é uma imagem única.
Ele é um contêiner que pode guardar várias imagens dentro dele, cada uma com:
- tamanhos diferentes (16×16, 32×32, 48×48…)
- profundidades de cor diferentes (8‑bit, 24‑bit, 32‑bit)
- formatos diferentes (BMP ou PNG)
Desde o Windows Vista, o formato ICO passou a permitir que cada imagem interna seja um PNG comprimido, em vez de um bitmap cru.
Ou seja:
✅ O arquivo .ico continua sendo .ico
✅ Mas lá dentro pode haver um PNG completo, com canal alfa, compressão etc.
🧠 Por que isso existe?
Porque:
- PNG ocupa menos espaço que BMP
- PNG suporta transparência real (alfa)
- Ícones modernos precisam de tamanhos grandes (256×256)
Um ICO com BMP de 256×256 ficaria gigantesco.
Com PNG, fica pequeno e eficiente.
🪟 Como o Windows lida com isso
O Windows (desde Vista):
✅ Carrega automaticamente PNG dentro de ICO
✅ Descomprime internamente
✅ Entrega para você um HICON normal
✅ Funciona com LoadImage, LoadIcon, CreateIconFromResourceEx etc.
Ou seja: você não precisa fazer nada especial.
Usando ícone PNG
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20365
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Usando ícone PNG
Descobri hoje algo interessante:
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20365
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Re: Usando ícone PNG
Faltou complementar:
Usar ICO com PNG dentro é uma coisa, usar PNG diretamente é outra.
Pelo que andei lendo, editores de ICO modernos já escolhem se salvam como BMP ou PNG dentro do ICO.
Parece que formato PNG só compensa se for maior que 32x32.
Confesso que fiquei confuso.
Dá a impressão de que imagem formato ICO não existe, que o formato é só um conjunto de imagens.
Mas é bom, isso abre a possibilidade de converter BMPs pra arquivos PNG menores, sem ter que fazer manobras depois.
Usar ICO com PNG dentro é uma coisa, usar PNG diretamente é outra.
Pelo que andei lendo, editores de ICO modernos já escolhem se salvam como BMP ou PNG dentro do ICO.
Parece que formato PNG só compensa se for maior que 32x32.
Confesso que fiquei confuso.
Dá a impressão de que imagem formato ICO não existe, que o formato é só um conjunto de imagens.
Mas é bom, isso abre a possibilidade de converter BMPs pra arquivos PNG menores, sem ter que fazer manobras depois.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/