Windows bitmap: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Ft1 (discussione | contributi) Nessun oggetto della modifica |
Ft1 (discussione | contributi) import tabelle da de.wiki |
||
Riga 40:
Su disco le immagini bitmap sono codificate utilizzando alcune semplici [[Struttura dati|strutture]] che ne descrivono le proprietà.
; BITMAPFILEHEADER : Questo è l'header della bitmap che contiene informazioni sulla grandezza in [[byte]] del [[file]] e l'[[offset]] dall'inizio del file
; BITMAPINFOHEADER : Qui sono indicate le dimensioni in pixel dell'immagine e il numero di colori utilizzati. Le informazioni sono relative al dispositivo sul quale la bitmap è stata creata. Sempre in questa struttura sono indicate inoltre la risoluzione orizzontale e verticale del dispositivo di output: questi valori, uniti a quelli della larghezza e dell'altezza in pixel, determinano le dimensioni di stampa dell'immagine in grandezza reale.
; array di RGBQUAD : La terza struttura è un [[array]] che fa corrispondere un colore ad ogni indice utilizzato. In questa tabella ogni colore è rappresentato da una struttura di 4 byte, 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 all'array di RGBQUAD, oppure nelle componenti cromatiche.
<div class="NavFrame" style="clear:both; text-align:left;">
<div class="NavHead"><font size = 2>
Espandi per vedere la struttura dettagliata
</font></div>
<div class="NavContent">
{| {{prettytable}}
! colspan="4" align="center" bgcolor=FFEFD5 | <span style="font-family:monospace">BITMAPFILEHEADER</span> (dimensione: 14 byte)
|-
! [[offset]]
! [[Tipo di dato|tipo]]
! nome
! contenuto
|-
| 0
| style="font-family:monospace" | [[Word|WORD]]
| bfType
| la [[stringa]] [[ASCII]] <span style="font-family:monospace">"BM"</span> (valore decimale 19778)
|-
| 2
| style="font-family:monospace" | [[Dword|DWORD]]
| bfSize
| dimensione del file (''non attendibile!'')
|-
| 6
| style="font-family:monospace" | [[Dword|DWORD]]
| bfReserved
| 0
|-
| 10
| style="font-family:monospace" | [[Dword|DWORD]]
| bfOffBits
| offset in byte dei dati immagine a partire dall'inizio del file
|}
{| {{prettytable}}
! colspan="4" align="center" bgcolor=FFEFD5 | <span style="font-family:monospace">BITMAPINFOHEADER</span> (dimensione: 40 byte)
|-
! [[offset]]
! [[Tipo di dato|tipo]]
! nome
! contenuto
|-
| 0
| style="font-family:monospace" | [[Dword|DWORD]]
| biSize
| 40 (dimensione della struttura in byte)
|-
| 4
| style="font-family:monospace" | LONG
| biWidth
| larghezza della bitmap in pixel
|-
| 8
| style="font-family:monospace" | LONG
| biHeight
| Corrisponde in [[valore assoluto]] all'altezza della bitmap in pixel:
; quando il valore à positivo : la bitmap è ''bottom-up'' (la mappa dei pixel incomincia dalla la riga più in basso e finisce con quella più in alto). Questa è la variante più comune.
; quando il valore è negativo : la bitmap è ''top-down'' (la mappa dei pixel incomincia dalla riga più in alto e finisce con quella più in basso).
|-
| 12
| style="font-family:monospace" | [[Word|WORD]]
| biPlanes
| sempre 1
|-
| 14
| 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.
|-
| 16
| style="font-family:monospace" | [[Dword|DWORD]]
| biCompression
| uno dei seguenti valori:
; 0 (<span style="font-family:monospace">BI_RGB</span>) : I dati immagine non sono compressi.
; 1 (<span style="font-family:monospace">BI_RLE8</span>) : I dati immagine sono compressi con l'algoritmo RLE per 8 bit per pixel. Valido solo per biBitCount = 8 e biHeight > 0.
; 2 (<span style="font-family:monospace">BI_RLE4</span>) : I dati immagine sono compressi con l'algoritmo RLE per 4 bit per pixel. Valido solo per biBitCount = 4 e biHeight > 0.
; 3 (<span style="font-family:monospace">BI_BITFIELDS</span>) : I dati immagine non sono compressi e sono codificati secondo maschere di colore personalizzate. Valido solo per biBitCount = 16 o 32; poco comune.
|-
| 20
| style="font-family:monospace" | [[Dword|DWORD]]
| biSizeImage
|
; quando biCompression = <span style="font-family:monospace">BI_RGB</span> : 0 oppure biWidth×biHeight×biBitCount/8
; altrimenti: dimensione dei dati immagine in byte
|-
| 24
| style="font-family:monospace" | LONG
| biXPelsPerMeter
| risoluzione orizzontale del dispositivo di output in pixel per metro; per i file BMP è solitamente 0.
|-
| 28
| style="font-family:monospace" | LONG
| biYPelsPerMeter
| risoluzione verticale del dispositivo di output in pixel per metro; per i file BMP è solitamente 0.
|-
| 32
| style="font-family:monospace" | [[Dword|DWORD]]
| biClrUsed
|
; quando biBitCount = 1 : 0
; quando biBitCount = 4 o 8 : numero di corrispondenze nella tavolozza; 0 indica il numero massimo (16 o 256).
; altrimenti : numero di corrispondenze nella tavolozza (0 = nessuna tavolozza). Anche se non è necessario, è consigliato in questo caso indicare una tavolozza per la quantizzazione dei colori.
|-
| 36
| style="font-family:monospace" | DWORD
| biClrImportant
|
; quando biBitCount = 1, 4 o 8 : numero di colori utilizzati nell'immagine; 0 indica tutti i colori della tavolozza.
; altrimenti
:; se la tavolozza esiste e contiene tutti i colori utilizzati nell'immagine : numero di colori
:; altrimenti : 0
|}
</div>
<div class="NavEnd"> </div>
</div>
== Vantaggi e svantaggi ==
|