Windows bitmap: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ft1 (discussione | contributi)
Nessun oggetto della modifica
Ft1 (discussione | contributi)
Nessun oggetto della modifica
Riga 59:
: Con le versioni 4 e 5 del formato bitmap è possibile indicare maschere per la codifica di colori in formato personalizzato. Queste strutture sono poco comuni.
; tavolozza
: Questa struttura è un [[array]] che fa corrispondere un colore ad ogni indice utilizzato. In questa tabella ogni colore è rappresentato da una struttura di 4 byte (<span style="font-family:monospace">RGBQUAD</span>), uno ciascuno per i componenti [[rosso]], [[verde]] e [[blu]] più un byte non utilizzato. Nel caso di immagini true-color con 16, 24 o 32 colori, questa tabella di colori non è necessaria perché il colore dei pixel non è indicizzato, bensì codificato direttamente nelle sue componenti.
; mappa dei pixel : Questa è la struttura di dati principale dove ad ogni pixel si fa corrispondere un colore sotto forma di indice nella tavolozza, oppure nelle sue componenti cromatiche.
 
Riga 133:
| style="font-family:monospace" | [[Word|WORD]]
| biBitCount
| profondità della bitmap in bit per pixel, dev'essere uno dei seguenti valori: 1, 4, 8, 16, 24 o 32. In caso di 1, 4 o 8 bit per pixel i colori sono indicizzati. I valori 16 e 32 sono poco comuni. Nella versione 5 del formato si usapuò usare il valore 0 perquando incapsulareviene incapsulata un'immagine [[Joint Photographic Experts Group|JPEG]] o [[Portable Network Graphics|PNG]].
|-
| 16
Riga 140:
| uno dei seguenti valori:
; 0 (<span style="font-family:monospace">BI_RGB</span>) : La mappa dei pixel immagine non è compressa.
; 1 (<span style="font-family:monospace">BI_RLE8</span>) : La mappa dei pixel è compressa con l'algoritmo [[RLE]] per 8 bit per pixel. Valido solo per biBitCount&nbsp;=&nbsp;8 e biHeight&nbsp;>&nbsp;0.
; 2 (<span style="font-family:monospace">BI_RLE4</span>) : La mappa dei pixel è compressa con l'algoritmo [[RLE]] per 4 bit per pixel. Valido solo per biBitCount&nbsp;=&nbsp;4 e biHeight&nbsp;>&nbsp;0.
; 3 (<span style="font-family:monospace">BI_BITFIELDS</span>) : La mappa dei pixel non è compressa ed è codificata secondo maschere di colore personalizzate. Valido solo per biBitCount&nbsp;=&nbsp;16 o 32; poco comune.
Nella versione 5 del formato sono ammessi inoltre i seguenti valori:
; 4 (<span style="font-family:monospace">BI_JPEG</span>) : La bitmap incapsula un'immagine in formato [[Joint Photographic Experts Group|JPEG]].
; 5 (<span style="font-family:monospace">BI_PNG</span>) : La bitmap incapsula un'immagine in formato [[Portable Network Graphics|PNG]].
|-
| 20
Line 148 ⟶ 151:
| biSizeImage
|
;Indica la dimesione in byte del buffer mappa dei pixel. Questo valore può essere lasciato a zero quando biCompression&nbsp;=&nbsp; è impostato a <span style="font-family:monospace">BI_RGB</span> : 0 oppure biWidth&nbsp;×&nbsp;biHeight&nbsp;×&nbsp;biBitCount&nbsp;/&nbsp;8.
; altrimenti: dimensione in byte della mappa dei pixel
|-
| 24
| style="font-family:monospace" | [[Long integer|LONG]]
| biXPelsPerMeter
| risoluzione orizzontale del dispositivo di output in pixel per metro; per0 ise filela BMPrisoluzione non è solitamente 0specificata.
|-
| 28
| style="font-family:monospace" | [[Long integer|LONG]]
| biYPelsPerMeter
| risoluzione verticale del dispositivo di output in pixel per metro; per0 ise filela BMPrisoluzione non è solitamente 0specificata.
|-
| 32
Line 166 ⟶ 168:
|
; quando biBitCount&nbsp;=&nbsp;1 : 0
; quando biBitCount&nbsp;=&nbsp;4 o 8 : numero di corrispondenze effettivamente utilizzate nella tavolozza dei colori; 0 indica il numero massimo (16 o 256).
; altrimenti : numero di corrispondenze nella tavolozza dei colori (0&nbsp;=&nbsp;nessuna tavolozza). AncheIn sequesto caso la tavolozza non è necessarionormalmente necessaria, ma quando c'è consigliatopuò inessere questousata casodal indicaresistema unao tavolozzada alcuni programmi per ottimizzare la quantizzazionerappresentazione dei coloridell'immagine.
|-
| 36
Line 181 ⟶ 183:
<div class="NavEnd">&nbsp;</div>
</div>
 
Normalmente, la dimensione in byte richiesta da una bitmap non compressa nella versione 3 del formato può essere espressa con la seguente formula matematica, dove ''w'' e ''h'' indicano rispettivamente la larghezza e l'altezza dell'immagine in pixel e ''b'' la profondità in bit per pixel.
 
:<math>54+4\left(H\left(15-b\right)\cdot2^{b}+4h\left\lceil\frac{w\cdot b}{32}\right\rceil\right)</math>
 
Con <math>H\left(x\right)</math> si è indicata la funzione a gradino di Heaviside, il cui valore è 0 per argomenti negativi e 1 per quelli positivi. <math>\lceil x\rceil</math> indica la funzione soffitto, equivalente al [[numero intero]] più piccolo maggiore o uguale all'argomento.
 
La stessa espressione si può formulare più semplicemente in [[C (linguaggio)|linguaggio C]] in questo modo:
<pre>
54 + 4 * (((1 << b) & 0xffff) + h * ((w * b + 31) / 8))
</pre>
 
== Vantaggi e svantaggi ==
Line 186 ⟶ 199:
 
{| border="1" cellpadding="3" cellspacing="0" style="float: left; margin: 0 1em 0 0"
| align="center" colspan="2" width="1" | Dimensioni in byte della stessa immagine (256128 colori) in diversi formati raster
|-
| [[Immagine:Smiley head happy.png]]