BITMAPINFOHEADER biHeight è il doppio di quello che mi aspettavo
Domanda
Sto scrivendo un programma in C per analizzare i file di Windows icona (ICO).
Quando ho letto nella struct BITMAPINFOHEADER
per una voce icona esistente, tutte le variabili all'interno della struct contengono valori che ci si aspetta, esclusi quelli biHeight
, che dovrebbe contenere l'altezza in pixel dell'immagine, è sempre il doppio di quanto dovrebbe essere.
Così, per esempio se ho un icona di 64x64, biWidth
è 64, ma biHeight
è 128.
E 'questo comportamento previsto? Questa è la mia prima volta a che fare con BITMAPINFOHEADER
.
Sono soprattutto attivo dal articolo di MSDN su BITMAPINFOHEADER .
Soluzione
Sì, questo è normale. E 'l'altezza aggiunto del "AND" maschera bitmap e la maschera bitmap "XOR", quindi per qualsiasi icona normale è semplicemente 2X l'altezza dell'icona. (Quelle maschere non sono utilizzati per le icone a 32 bit più;. Che sono un residuo). Basta dividere per due