Pregunta

Estoy escribiendo una aplicación en C para analizar los archivos de icono de Windows (ICO).

Cuando leí en el BITMAPINFOHEADER estructura para una entrada de icono existente, todas las variables dentro de la estructura contienen valores que se esperan, excepto que biHeight, que debe contener la altura en píxeles de la imagen, siempre es el doble de lo que debería ser.

Entonces, por ejemplo, si tengo un icono 64x64, biWidth tiene 64 años, pero biHeight es 128.

¿Es este comportamiento esperado? Esta es la primera vez que trato con BITMAPINFOHEADER.

Estoy operando principalmente desde el Artículo de MSDN en bitmapinfoheader.

¿Fue útil?

Solución

Sí, esto es normal. Es la altura adicional de la máscara "y" mapa de bits y la máscara de mapa de bits "Xor", por lo que para cualquier icono normal es simplemente 2 veces la altura del icono. (Esas máscaras ya no se usan para iconos de 32 bits; son un remanente). Simplemente divida por dos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top