Usando ícone PNG

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20365
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Usando ícone PNG

Mensagem por JoséQuintas »

Descobri hoje algo interessante:
“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.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20365
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Re: Usando ícone PNG

Mensagem por JoséQuintas »

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.
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/
Responder