Windows bitmap: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ft1 (discussione | contributi)
import tabelle da de.wiki
Ft1 (discussione | contributi)
Nessun oggetto della modifica
Riga 6:
lossy = lossless |
licenza = libero da brevetti |
website = http://www.microsoft.com/ }}
'''Windows bitmap''' è un formato dati utilizzato per la rappresentazione di [[raster|immagini raster]] sui [[Sistema operativo|sistemi operativi]] [[Microsoft Windows]] e [[OS/2]]. Noto soprattutto come [[formato di file]], fu introdotto con [[Windows 3.x#Windows 3.0|Windows 3.0]] nel [[1990]].
 
Riga 14:
Sono state sviluppate tre versioni del formato bitmap. La prima e più comunemente utilizzata è la versione 3: non esistono versioni antecedenti. Le versioni successive 4 e 5 si incontrano assai raramente. Di seguito, tranne dove indicato diversamente, si farà riferimento implicito sempre solo alla versione 3 del formato.
 
=== Versione 3 ===
Il formato di file Windows bitmap permette operazioni di lettura e scrittura molto veloci e senza perdita di qualità, ma richiede generalmente una maggior quantità di memoria rispetto ad altri formati analoghi.
 
Line 20 ⟶ 21:
 
La versione 3 del formato non supporta il [[canale alpha]], la correzione del colore né i [[Metadato|metadati]].
 
=== Versioni 4 e 5 ===
Con [[Windows 95]] e [[Windows 98]] Microsoft ha introdotto le nuove versioni 4 e 5 del formato bitmap, che supportano il [[canale alpha]], la correzione del colore e possono incorporare immagini [[Joint Photographic Experts Group|JPEG]] e [[Portable Network Graphics|PNG]]. Questi nuovi formati si trovano tuttavia assai raramente come file indipendenti e molte applicazioni non sono in grado di riconoscerli; il loro uso principale è quello di formato interno per i programmi di Windows.
 
== Struttura ==
<div class="thumb tright">
<div class="thumbcaption">
<center style="margin: 1em">
{| border="2" bgcolor="F8F8F8" cellpadding="34" cellspacing="0" style="margin: 1em; border: thin1px solid#aaa lightgraysolid; colorborder-collapse: blackcollapse;"
| align="left" | '''Header del file'''<br>(<span style="font-family:monospace">BITMAPFILEHEADER</span>)
| style="background-color: #80a0c0" | BITMAPFILEHEADER
|-
| bgcolor="E3ECF4" align="left" | '''Blocco d'informazioni'''<br>(<span style="font-family:monospace">BITMAPINFO</span>):
| style="background-color: #80a0d0" | BITMAPINFOHEADER
 
:'''Header della bitmap'''<br>(<span style="font-family:monospace">BITMAPINFOHEADER</span>)
:<hr noshade="noshade" size="1" />
:eventualmente: '''maschere'''
:<hr noshade="noshade" size="1" />
:eventualmente: '''tavolozza'''
|-
| align="left" | eventualmente: spazio inutilizzato
| style="background-color: #80a0e0" | array di RGBQUAD
|-
| stylebgcolor="background-color:E3ECF4" #80a0f0align="left" | '''mappa dei pixel'''
|-
| align="left" | eventualmente: spazio inutilizzato
|}
</center>
Line 39 ⟶ 51:
</div>
 
Su disco le immagini bitmap sono codificate utilizzando alcune semplici [[Struttura dati|strutture]] che ne descrivono le proprietà. Tutti i valori sono in ordine [[Ordine dei byte|little endian]].
; BITMAPFILEHEADER
; BITMAPFILEHEADER : Questo è l'header della bitmap che contiene informazioni sulla grandezza in [[byte]] del [[file]] e l'[[offset]] dall'inizio del file del primo byte dinella datimappa immaginedei pixel. Questa struttura è assente quando la bitmap vieneè codificataintegrata come risorsa all'interno di un'[[applicazione]] o [[Libreria software|libreria]].
; 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.
; BITMAPINFOHEADER
; 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.
; 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.
; 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.
; maschere
: 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
; array di RGBQUAD : La terzaQuesta struttura è un [[array]] che fa corrispondere un colore ad ogni indice utilizzato. In questa tabella ogni colore è rappresentato da una struttura di 4 byte (RGBQUAD), 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'arraynella di RGBQUADtavolozza, oppure nelle sue componenti cromatiche.
 
<div class="NavFrame" style="clear:both; text-align:left;">
Line 51 ⟶ 68:
<div class="NavContent">
 
{| {{prettytable}}
! colspan="4" align="center" bgcolor=FFEFD5 | <span style="font-family:monospace">BITMAPFILEHEADER</span> (dimensione: 14 byte)
|-
Line 62 ⟶ 79:
| style="font-family:monospace" | [[Word|WORD]]
| bfType
| la [[Stringa (informatica)|stringa]] [[ASCII]] <span style="font-family:monospace">"BM"</span> (valore decimale 19778, esadecimale 4D42)
|-
| 2
| style="font-family:monospace" | [[Dword|DWORD]]
| bfSize
| dimensione del file (''non attendibileaffidabile!'')
|-
| 6
Line 77 ⟶ 94:
| style="font-family:monospace" | [[Dword|DWORD]]
| bfOffBits
| offset indel primo byte deidella datimappa dei immaginepixel a partire dall'inizio del file
|}
 
Line 91 ⟶ 108:
| style="font-family:monospace" | [[Dword|DWORD]]
| biSize
| 40 (dimensione in byte della struttura ininsieme byte)alle eventuali maschere:
; versione 3 : 40
; versione 4 : 108
; versione 5 : 124
|-
| 4
| style="font-family:monospace" | LONG
| biWidth
| larghezza della bitmapdell'immagine in pixel
|-
| 8
| style="font-family:monospace" | LONG
| biHeight
| Corrisponde in [[valore assoluto]] all'altezza della bitmapdell'immagine in pixel:
; quando il valore à positivo : la bitmapl'immagine è ''bottom-up'' (la mappa dei pixel incomincia dalla la riga di pixel più in basso e finisce con quella più in alto). Questa è la variante più comune.
; quando il valore è negativo : la bitmapl'immagine è ''top-down'' (la mappa dei pixel incomincia dalla riga di pixel più in alto e finisce con quella più in basso).
|-
| 12
Line 113 ⟶ 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 usa il valore 0 per incapsulare un'immagine JPG o PNG.
|-
| 16
Line 119 ⟶ 139:
| biCompression
| uno dei seguenti valori:
; 0 (<span style="font-family:monospace">BI_RGB</span>) : ILa datimappa dei pixel immagine non sonoè compressicompressa.
; 1 (<span style="font-family:monospace">BI_RLE8</span>) : ILa datimappa immaginedei sonopixel compressiè 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>) : ILa datimappa immaginedei sonopixel compressiè 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>) : ILa datimappa immaginedei pixel non sonoè compressicompressa eed sonoè codificaticodificata secondo maschere di colore personalizzate. Valido solo per biBitCount&nbsp;=&nbsp;16 o 32; poco comune.
|-
| 20
Line 128 ⟶ 148:
| biSizeImage
|
; quando biCompression&nbsp;=&nbsp;<span style="font-family:monospace">BI_RGB</span> : 0 oppure biWidth×biHeight×biBitCountbiWidth&nbsp;×&nbsp;biHeight&nbsp;×&nbsp;biBitCount&nbsp;/&nbsp;8
; altrimenti: dimensione deiin datibyte immaginedella inmappa bytedei pixel
|-
| 24