Panoramica dei formati pixel nativi
In questo argomento vengono presentati i formati pixel forniti dal componente Windows Imaging (WIC).
Un formato pixel descrive il layout di memoria di ogni pixel in una bitmap. Questo layout di memoria descrive il modo in cui i dati dell'immagine di una bitmap vengono codificati specificando il formato numerico e l'organizzazione del canale colore. WIC supporta diversi formati numerici per più combinazioni di organizzazioni di canali a colori, offrendo un'ampia gamma di formati pixel.
Profondità bit
La profondità del bit è il numero di bit usati per codificare ogni canale di colore. Oggi la maggior parte delle immagini digitali usa una profondità di bit pari a 8, ovvero ogni canale di colore in un pixel è rappresentato da 8 bit, fornendo 2⁸ (256) valori univoci per canale. Un'immagine con una profondità di bit pari a 8 e tre canali di colore (ad esempio rosso, verde e blu) usa 24 bit per pixel (bpp), che fornisce 2²⁴ (16.777.216) colori diversi per pixel.
Per una migliore risoluzione dei colori, è possibile usare una profondità di bit pari a 16 o 32. In questo modo ogni canale di colore è dotato di valori univoci 2¹⁶ (65.536) o 2²², a un costo di maggiore memoria per pixel.
In alcuni formati, la profondità del bit non è un multiplo di 8. Questi formati sono denominati formati compressi , perché i canali di colore in un pixel non sono allineati ai limiti dei byte. Ad esempio, se le profondità di bit pari a 5, tre canali di colore possono essere archiviati in 16 bit (incluso 1 bit di spaziatura interna, per allineare i pixel in byte). I formati compressi sono utili quando la memoria o la potenza di elaborazione sono limitate.
Codifica numerica
Per la maggior parte delle immagini digitali di oggi, vengono usati byte senza segno e numeri interi brevi senza segno per descrivere l'intervallo numerico di ogni canale di colore. Il valore minimo (0) rappresenta l'intensità zero in un singolo canale di colore e il nero viene ottenuto quando tutti i canali di colore sono zero. Analogamente, il valore massimo rappresenta l'intensità completa e il bianco viene ottenuto quando tutti i canali di colore sono a piena intensità. A una profondità di bit pari a 8, un UINT fornisce 256 valori univoci per canale colore (0 - 255). Un UINT a 16 bit fornisce 65.536 valori univoci per canale colore (0 - 65.535).
WiC supporta inoltre formati a virgola mobile e a virgola fissa. Questi formati supportano intervalli dinamici più grandi, perché l'intero intervallo numerico di ogni canale di colore è maggiore dell'intervallo visibile. Di conseguenza, i colori possono essere regolati sopra o sotto l'intervallo visibile, durante i passaggi intermedi dell'elaborazione delle immagini, senza perdita di informazioni sull'immagine.
Codifica numerica a virgola fissa
I valori a virgola fissa a 16 bit vengono interpretati come s2.13: bit del segno, due bit interi e tredici bit frazionari. Utilizzando questa interpretazione, un intervallo numerico compreso tra −4,0 e +3,999... può essere rappresentato, con il valore 1,0 rappresentato dal valore intero con segno 8192 (0x2000).
I valori a virgola fissa a 32 bit vengono interpretati come s7.24: bit del segno, sette bit interi e ventiquattro bit frazionari. Usando questa interpretazione, un intervallo numerico compreso tra −128,0 e +127,999... può essere rappresentato, con il valore 1,0 rappresentato dal valore intero con segno 16777216 (0x01000000).
Canali colore
I canali di colore di un formato pixel definiscono il layout di memoria di ogni colore all'interno dei dati dell'immagine di una bitmap. Esistono diverse strutture di canali di colore comuni nelle immagini digitali di oggi e WIC offre supporto per molti di questi.
Modello di colore RGB/BGR
I formati RGB e BGR descrivono i colori in un modello di colore aggiuntivo. Il metodo più comune per descrivere un'immagine è costituito da tre canali di colore separati che rappresentano i colori rosso (R), verde (G) e blu (B). WIC fornisce supporto per questi tre canali nell'ordine rosso-verde-blu (RGB) o blu-verde-rosso (BGR). Questo è l'ordine in cui ogni canale di colore viene visualizzato all'interno del flusso di bit sequenziale. Ad esempio, nel formato GUID_WICPixelFormat32bppRGB, ogni pixel è largo 32 bit. Il canale rosso è il primo byte (meno significativo) in memoria, seguito da verde e quindi blu. Viceversa, nel formato GUID_WICPixelFormat32bppBGR, i canali di colore sono in ordine opposto. WIC supporta diversi formati RGB/BGR, inclusi formati di bit compressi speciali, ad esempio GUID_WICPixelFormat16bppBGR555.
Nota
I canali di colore dei formati di bit compressi BGR speciali non sono in multipli di 8 come i canali di colore in formati di pixel tipici. Ciò significa che i valori del canale non sono allineati ai byte. Prestare attenzione quando si leggono canali di colore di bit compressi.
Oltre ai formati RGB e BGR, WIC fornisce anche formati pixel RGB e BGR che supportano un canale alfa (A). Il canale alfa fornisce dati di opacità per il pixel. Per i formati con un canale alfa aggiunto, il canale alfa in genere è l'ultimo nell'ordine dei canali di colore. Ad esempio, nel formato pixel GUID_WICPixelFormat32bppBGRA, l'ordine dei byte è blu, verde e rosso, seguito dal canale alfa.
WIC supporta anche formati pixel RGB alfa pre-moltiplicati (P). In un formato di pixel RGBA tipico, i valori di colore rosso, verde e blu sono i valori di colore effettivi per l'immagine. Per creare un'immagine composita nel formato RGBA standard, è necessario moltiplicare il valore alfa dell'immagine di primo piano per ognuno dei canali rosso, verde e blu prima di aggiungerlo al colore dell'immagine di sfondo. In un formato pixel RGB alfa pre-moltiplicato, ogni canale di colore è già stato moltiplicato per il valore alfa. In questo modo viene fornito un metodo più efficiente di composizione delle immagini con i dati del canale alfa. Per recuperare i valori di colore reali di ogni canale in un formato pixel PRGBA/PBGRA, la moltiplicazione del canale alfa deve essere invertita dividendo i valori di colore in base al valore alfa.
Modello di colore CMYK
CMYK è un modello di colore sottrazione utilizzato per la stampa. I colori prodotti da un modello CMYK vengono generati dalla luce non assorbita, ma riflessa. CMYK è un modello a quattro canali di ciano (C), magenta (M), giallo (Y) e nero (K). Quando tutti e quattro i canali di colore sono al valore massimo, il risultato è nero. Analogamente ai modelli di colore RGB/BGR, l'ordine dei byte all'interno del flusso di bit sequenziale viene assegnato dal nome del formato pixel. Ad esempio, nel formato pixel GUID_WICPixelFormat32bppCMYK, ogni pixel è costituito da 32 bit. Il primo byte contiene il valore ciano, seguito a sua volta da magenta, giallo e nero. WIC fornisce formati pixel per CMYK a 32 e 64 bit per pixel (bpp).
Oltre al modello di colore CMYK standard, WIC fornisce anche CMYK con alfa. Ciò consente alle immagini CMYK di avere dati di fusione alfa simili al modello di colore RGB/BGR. Il canale alfa si trova immediatamente dopo il nero nel flusso di bit sequenziale di una bitmap.
Modello di colore n canale
Per la flessibilità, WIC fornisce anche formati di pixel che non hanno un ordine di canale predefinito. WIC offre formati di pixel che supportano da tre a otto canali di dati di immagini continue a profondità di bit di 8 e 16. A differenza dei formati pixel RGB/BGR e CMYK, i formati di canale n non specificano l'ordine del canale, ma il numero di canali di colore disponibili. Ad esempio, nel formato pixel GUID_WICPixelFormat32bpp4Channels, ogni pixel è costituito da 32 bit con ognuno dei 4 canali che occupano un singolo byte.
WIC fornisce anche formati pixel per n-channel con alfa. Ciò consente alle immagini di canale n di avere dati di fusione alfa simili ai modelli di colori RGB/BGR e CMYK. Il canale alfa si trova immediatamente dopo l'ultimo canale di colore nel flusso di bit sequenziale di una bitmap.
Modelli di colori indicizzati e in scala di grigi
I formati indicizzati usano una tabella di colori, denominata tavolozza. La tavolozza viene archiviata esternamente ai dati pixel oppure definita in modo implicito. Il valore di ogni pixel nell'immagine è un indice nella tavolozza. Con un formato indicizzato, il numero di bit per pixel è direttamente correlato al numero di voci nella tavolozza. Ciò riduce significativamente la quantità di dati necessari per rappresentare l'immagine, ma limita anche il numero di colori disponibili per l'immagine. WIC supporta formati indicizzati con 1, 2, 4 o 8 bpp.
Per i formati monocromatici (gradazioni di grigio), WIC supporta 1, 2, 4, 8, 16 e 32 bit per pixel. Per profondità di bit pari a 1, 8, 16 e 32, i dati di colore vengono archiviati in un singolo canale. Per le profondità di bit di 2 o 4, i pixel sono indici in una tavolozza in scala di grigi.
Modello di colore Y'CbCr
WIC aggiunge il supporto per il modello di colore JPEG JFIF Y'CbCr. Y'CbCr separa i colori in un componente luma (Y') e due componenti cromatici (Cb e Cr). Molti file JPEG archiviano in modo nativo i dati delle immagini usando il modello di colore Y'CbCr.
Il sistema visivo umano è meno sensibile alle modifiche nel cromatico rispetto ai formati luma e Y'CbCr può sfruttare questa ridotta sensibilità riducendo la quantità di dati cromatici archiviati rispetto all'luma. A tale scopo, archiviano la cromatica e luma in piani separati e ridimensionano ogni piano componente in una risoluzione diversa. Questa pratica è nota come sottocampionamento cromatico.
Poiché i dati chroma e luma vengono archiviati separatamente e possono essere risoluzioni diverse, WIC definisce formati di pixel luma e cromatici separati. WIC supporta i dati a 8 bit per canale.
Formato pixel WIC
I formati di pixel in WIC vengono definiti usando GUID per evitare conflitti con IHV. WIC fornisce un nome descrittivo per fare riferimento al GUID di un formato pixel nativo. La convenzione di denominazione per i formati pixel WIC è la seguente:
[GUID_WICPixelFormat] [Bit per pixel] [Ordine canale] [tipo Archiviazione]
Componente di formato | Descrizione |
---|---|
GUID_WICPixelFormat | Identificazione descrittiva per tutti i formati pixel WIC. Il nome descrittivo per tutti i pixel WIC inizia con questa stringa. |
Bit per pixel | Numero di bit per pixel (bpp) usati per il formato pixel. |
Ordine canale | Modello canale colore e ordine di ogni canale per il formato. |
Tipo archivio | Codifica numerica utilizzata per il formato pixel. La codifica predefinita è un intero senza segno. Se nulla segue le informazioni sul modello di colore, è implicito un unsigned integer (UINT). FixedPoint e Float vengono usati per identificare i formati di pixel che usano rispettivamente la codifica a virgola mobile e a virgola fissa. |
Nota
Per i formati di canale n, [Ordine canale] non specifica l'ordine dei colori, ma il numero di canali disponibili. Ad esempio, GUID_WICPixelFormat24bpp3Channels fornisce 3 canali di colore in cui "3Channels" è la voce [Ordine canale], ma indica solo il numero di canali e non l'ordine.
Ad esempio, il nome descrittivo GUID_WICPixelFormat24bppRGB significa che il formato pixel usa 24 bit per pixel e il modello di colore RGB. Poiché il nome non identifica in modo esplicito un tipo di archiviazione, è implicito un intero senza segno.
WIC supporta diversi formati di pixel. Le tabelle seguenti raggruppano formati di pixel simili in base alla struttura dei colori, fornendo informazioni aggiuntive, ad esempio profondità bit, bit per pixel e codifica numerica. Ogni tabella contiene le informazioni seguenti:
- Nome descrittivo. Nome descrittivo del formato pixel.
- Conteggio canali. Numero di canali di colore.
- Bit per canale. Numero di bit per canale (profondità bit).
- Bit per pixel. Numero di bit per pixel, inclusi i bit di riempimento.
- Archiviazione Tipo. Codifica numerica dei dati dell'immagine. Questo valore può essere un intero senza segno (UINT), un numero a virgola fissa (FixedPoint) o un numero a virgola mobile (Float).
Nota
Per maggiore chiarezza, questo documento fa riferimento ai formati pixel solo in base ai nomi descrittivi. Il valore esadecimale effettivo per i formati pixel è disponibile nei file wincodec.h/idl.
Formati di pixel non definiti
L'elenco seguente mostra i formati di pixel generici usati quando il formato pixel non è definito o non è importante per un'operazione di immagine.
- GUID_WICPixelFormatUndefined
- GUID_WICPixelFormatDontCare
Formati di pixel indicizzati
La tabella seguente elenca i formati di pixel indicizzati forniti da WIC. In questi formati, il valore per ogni pixel è un indice in una tavolozza dei colori.
Nome descrittivo | Conteggio canali | Bit per pixel | Tipo di archiviazione |
---|---|---|---|
GUID_WICPixelFormat1bppIndexed | 1 | 1 | UINT |
GUID_WICPixelFormat2bppIndexed | 1 | 2 | UINT |
GUID_WICPixelFormat4bppIndexed | 1 | 4 | UINT |
GUID_WICPixelFormat8bppIndexed | 1 | 8 | UINT |
Formati di pixel di bit compressi
La tabella seguente elenca i formati di bit compressi forniti da WIC. In questi formati, i dati del canale colore non sono allineati ai byte.
Nome descrittivo | Conteggio canali | Bit per canale | Bit per pixel | Tipo di archiviazione |
---|---|---|---|---|
GUID_WICPixelFormat16bppBGR555 | 3 | 5 | 16 | UINT |
GUID_WICPixelFormat16bppBGR565 | 3 | 5(B)/6(G)/5(R) | 16 | UINT |
GUID_WICPixelFormat16bppBGRA555 | 4 | 5(B)/5(G)/5(R)/1(A) | 16 | UINT |
GUID_WICPixelFormat32bppBGR101010 | 3 | 10 | 32 | UINT |
GUID_WICPixelFormat32bppRGBA1010102 | 4 | 10(R)/10(G)/10(B)/2(A) | 32 | UINT |
GUID_WICPixelFormat32bppRGBA1010102XR | 4 | 10(R)/10(G)/10(B)/2(A) | 32 | UINT |
GUID_WICPixelFormat32bppR10G10B10A2 | 4 | 10(R)/10(G)/10(B)/2(A) | 32 | UINT |
GUID_WICPixelFormat32bppR10G10B10A2HDR10 | 4 | 10(R)/10(G)/10(B)/2(A) | 32 | UINT |
Per i formati GUID_WICPixelFormat32bppBGR101010 e GUID_WICPixelFormat32bppRGBA1010102, il canale rosso viene archiviato nei bit meno significativi. Per i formati GUID_WICPixelFormat32bppR10G10B10A2 e GUID_WICPixelFormat32bppR10G10B10A2HDR10, il canale rosso viene definito nei bit più significativi, lo stesso layout di DXGI_FORMAT_R10G10B10A2_UNORM.
Il formato GUID_WICPixelFormat32bppR10G10B10A2HDR10 è il formato di pixel a 10 bit per HDR10 (spazio dei colori BT.2020 e SMPTE ST.2084 EOTF).
Formati pixel in scala di grigi
Nella tabella seguente sono elencati i formati in scala di grigi forniti da WIC. In questi formati, i dati colore rappresentano le sfumature di grigio.
Nome descrittivo | Conteggio canali | Bit per canale | Bit per pixel | Tipo di archiviazione |
---|---|---|---|---|
GUID_WICPixelFormatBlackWhite | 1 | 1 | 1 | UINT |
GUID_WICPixelFormat2bppGray | 1 | 2 | 2 | UINT |
GUID_WICPixelFormat4bppGray | 1 | 4 | 4 | UINT |
GUID_WICPixelFormat8bppGray | 1 | 8 | 8 | UINT |
GUID_WICPixelFormat16bppGray | 1 | 16 | 16 | UINT |
GUID_WICPixelFormat16bppGrayFixedPoint | 1 | 16 | 16 | FixedPoint |
GUID_WICPixelFormat16bppGrayHalf | 1 | 16 | 16 | Float |
GUID_WICPixelFormat32bppGrayFloat | 1 | 32 | 32 | Float |
GUID_WICPixelFormat32bppGrayFixedPoint | 1 | 32 | 32 | FixedPoint |
Formati pixel RGB/BGR
La tabella seguente elenca i formati RGB/BGR forniti da WIC. Questi formati separano i dati dei colori primari in canali rosso (R), verde (G) e blu (B). Viene fornito un canale alfa (A) aggiuntivo per informazioni sull'opacità in alcuni formati.
Nome descrittivo | Conteggio canali | Bit per canale | Bit per pixel | Tipo di archiviazione |
---|---|---|---|---|
GUID_WICPixelFormat24bppRGB | 3 | 8 | 24 | UINT |
GUID_WICPixelFormat24bppBGR | 3 | 8 | 24 | UINT |
GUID_WICPixelFormat32bppBGR | 3 | 8 | 32 | UINT |
GUID_WICPixelFormat32bppRGBA | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat32bppBGRA | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat32bppRGBE* | 4 | 8 | 32 | Float |
GUID_WICPixelFormat32bppPRGBA | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat32bppPBGRA | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat48bppRGB | 3 | 16 | 48 | UINT |
GUID_WICPixelFormat48bppBGR | 3 | 16 | 48 | UINT |
GUID_WICPixelFormat48bppRGBFixedPoint | 3 | 16 | 48 | Corretto |
GUID_WICPixelFormat48bppBGRFixedPoint | 3 | 16 | 48 | Corretto |
GUID_WICPixelFormat48bppRGBHalf | 3 | 16 | 48 | Float |
GUID_WICPixelFormat64bppRGBA | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat64bppBGRA | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat64bppPRGBA | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat64bppPBGRA | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat64bppRGBFixedPoint | 3 | 16 | 64 | Corretto |
GUID_WICPixelFormat64bppRGBAFixedPoint | 4 | 16 | 64 | Corretto |
GUID_WICPixelFormat64bppBGRAFixedPoint | 4 | 16 | 64 | Corretto |
GUID_WICPixelFormat64bppRGBHalf | 3 | 16 | 64 | Float |
GUID_WICPixelFormat64bppRGBAHalf | 4 | 16 | 64 | Float |
GUID_WICPixelFormat96bppRGBFixedPoint | 3 | 32 | 96 | Corretto |
GUID_WICPixelFormat128bppRGBFloat | 3 | 32 | 128 | Float |
GUID_WICPixelFormat128bppRGBAFloat | 4 | 32 | 128 | Float |
GUID_WICPixelFormat128bppPRGBAFloat | 4 | 32 | 128 | Float |
GUID_WICPixelFormat128bppRGBFixedPoint | 3 | 32 | 128 | Corretto |
GUID_WICPixelFormat128bppRGBAFixedPoint | 4 | 32 | 128 | Corretto |
Nota
*Il formato GUID_WICPixelFormat32bppRGBE codifica tre valori a virgola mobile a 16 bit in 4 byte, come indicato di seguito: Tre mantissa a 8 bit senza segno per i canali R, G e B, più un esponente a 8 bit condiviso. Questo formato fornisce una precisione a virgola mobile a 16 bit in una rappresentazione in pixel più piccola.
A partire da Windows 8 e l'aggiornamento della piattaforma per Windows 7, WIC fornisce formati aggiuntivi, illustrati nella tabella qui.
Nome descrittivo | Conteggio canali | Bit per canale | Bit per pixel | Tipo di archiviazione |
---|---|---|---|---|
GUID_WICPixelFormat32bppRGB | 3 | 8 | 32 | UINT |
GUID_WICPixelFormat64bppRGB | 3 | 16 | 64 | UINT |
GUID_WICPixelFormat96bppRGBFloat | 3 | 32 | 96 | FLOAT |
GUID_WICPixelFormat64bppPRGBAHalf | 4 | 16 | 64 | FLOAT |
Formati pixel CMYK
La tabella seguente elenca i formati CMYK forniti da WIC. Questi formati separano i dati dei colori primari in canali ciano (C), magenta (M), giallo (Y) e nero (K).
Nome descrittivo | Conteggio canali | Bit per canale | Bit per pixel | Tipo di archiviazione |
---|---|---|---|---|
GUID_WICPixelFormat32bppCMYK | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat64bppCMYK | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat40bppCMYKAlpha | 5 | 8 | 40 | UINT |
GUID_WICPixelFormat80bppCMYKAlpha | 5 | 16 | 80 | UINT |
Formati pixel di n canali
La tabella seguente elenca i formati di canale n forniti da WIC. Questi formati forniscono diversi canali di colore non definiti per archiviare i dati dell'immagine.
Nome descrittivo | Conteggio canali | Bit per canale | Bit per pixel | Tipo di archiviazione |
---|---|---|---|---|
GUID_WICPixelFormat24bpp3Channels | 3 | 8 | 24 | UINT |
GUID_WICPixelFormat48bpp3Channels | 3 | 16 | 48 | UINT |
GUID_WICPixelFormat32bpp3ChannelsAlpha | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat64bpp3ChannelsAlpha | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat32bpp4Channels | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat64bpp4Channels | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat40bpp4ChannelsAlpha | 5 | 8 | 40 | UINT |
GUID_WICPixelFormat80bpp4ChannelsAlpha | 5 | 16 | 80 | UINT |
GUID_WICPixelFormat40bpp5Channels | 5 | 8 | 40 | UINT |
GUID_WICPixelFormat80bpp5Channels | 5 | 16 | 80 | UINT |
GUID_WICPixelFormat48bpp5ChannelsAlpha | 6 | 8 | 48 | UINT |
GUID_WICPixelFormat96bpp5ChannelsAlpha | 6 | 16 | 96 | UINT |
GUID_WICPixelFormat48bpp6Channels | 6 | 8 | 48 | UINT |
GUID_WICPixelFormat96bpp6Channels | 6 | 16 | 96 | UINT |
GUID_WICPixelFormat56bpp6ChannelsAlpha | 7 | 8 | 56 | UINT |
GUID_WICPixelFormat112bpp6ChannelsAlpha | 7 | 16 | 112 | UINT |
GUID_WICPixelFormat56bpp7Channels | 7 | 8 | 56 | UINT |
GUID_WICPixelFormat112bpp7Channels | 7 | 16 | 112 | UINT |
GUID_WICPixelFormat64bpp7ChannelsAlpha | 8 | 8 | 64 | UINT |
GUID_WICPixelFormat128bpp7ChannelsAlpha | 8 | 16 | 128 | UINT |
GUID_WICPixelFormat64bpp8Channels | 8 | 8 | 64 | UINT |
GUID_WICPixelFormat128bpp8Channels | 8 | 16 | 128 | UINT |
GUID_WICPixelFormat72bpp8ChannelsAlpha | 9 | 8 | 72 | UINT |
GUID_WICPixelFormat144bpp8ChannelsAlpha | 9 | 16 | 144 | UINT |
Formati pixel solo alfa
Nella tabella seguente sono elencati i formati Alfa Only forniti da WIC. Questo formato contiene solo informazioni alfa.
Nome descrittivo | Conteggio canali | Bit per canale | Bit per pixel | Tipo di archiviazione |
---|---|---|---|---|
GUID_WICPixelFormat8bppAlpha | 1 | 8 | 32 | UINT |
Formati pixel Y'CbCr
La tabella seguente elenca i formati Y'CbCr forniti da WIC. Questi formati separano i dati dei colori primari in luma (Y), differenza cromatica blu (Cb) e differenza di choma rosso (Cr). Si noti che questi formati sono progettati per archiviare i dati JFIF JFIF Y'CbCr pixel.
Nome descrittivo | Conteggio canali | Bit per pixel | Tipo di archiviazione |
---|---|---|---|
GUID_WICPixelFormat8bppY | 1 | 8 | UINT |
GUID_WICPixelFormat8bppCb | 1 | 8 | UINT |
GUID_WICPixelFormat8bppCr | 1 | 8 | UINT |
GUID_WICPixelFormat16bppCbCr | 2 | 16 | UINT |
Spazio colore
I formati di pixel in sé non hanno uno spazio colore. In genere, lo spazio dei colori è un'interpretazione semantica dei valori pixel che dipendono dal contesto della bitmap. Alcune immagini identificano un contesto di colore che definisce lo spazio colori dell'immagine. Solo in assenza di un contesto di colore deve essere dedotto lo spazio colore.
Le informazioni sul contesto del colore sono definite dall'interfaccia IWICColorContext per WIC. Per recuperare le informazioni sul contesto del colore per un frame di immagine, utilizzare il metodo GetColorContext .
In assenza di informazioni sullo spazio dei colori per un'immagine, la regola generale per l'inferenza dello spazio dei colori è che i formati RGB e gradazioni di grigio UINT usano lo spazio di colore RGB standard (sRGB), mentre i formati RGB a virgola mobile e a virgola mobile e RGB usano lo spazio dei colori RGB esteso (scRGB). Il modello di colore CMYK usa uno spazio colori RWOP.
Formati di immagine nativi
Ognuno dei codec WIC forniti da Windows supporta un subset dei formati pixel WIC. Per ogni codec, i formati di decodifica supportati possono essere diversi dai formati di codifica supportati.
Quando si decodifica un'immagine, se i dati vengono archiviati in modo nativo in un formato pixel non supportato dal decodificatore, verrà convertito un formato supportato. Per determinare il formato pixel di output, chiama IWICBitmapFrameDecode::GetPixelFormat.
Quando si codifica un'immagine, usare IWICBitmapFrameEncode::SetPixelFormat per richiedere che il codificatore usi un formato pixel specifico. Il codificatore restituirà il formato pixel supportato più vicino, che può essere diverso da quello richiesto.
Le tabelle seguenti illustrano i formati di pixel supportati da ognuno dei codec WIC forniti da Windows.
Codec nativo BMP
Formati pixel decodificatore | Formati pixel del codificatore |
---|---|
GUID_WICPixelFormat1bppIndexed | GUID_WICPixelFormat1bppIndexed |
GUID_WICPixelFormat4bppIndexed | GUID_WICPixelFormat4bppIndexed |
GUID_WICPixelFormat8bppIndexed | GUID_WICPixelFormat8bppIndexed |
GUID_WICPixelFormat16bppBGR555 | GUID_WICPixelFormat16bppBGR555 |
GUID_WICPixelFormat16bppBGR565 | GUID_WICPixelFormat16bppBGR565 |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat32bppBGR | GUID_WICPixelFormat32bppBGR |
GUID_WICPixelFormat32bppBGRA* | GUID_WICPixelFormat32bppBGRA* |
GUID_WICPixelFormat64bppRGBAFixedPoint | GUID_WICPixelFormat32bppPBGRA |
GUID_WICPixelFormat64bppRGBAFixedPoint | |
GUID_WICPixelFormat64bppBGRAFixedPoint |
Nota
GUID_WICPixelFormat32bppBGRA è supportato in Windows 8 e nell'aggiornamento della piattaforma per Windows 7 e versioni successive.
- Per codificare in questo formato, usare l'opzione del codificatore EnableV5Header32bppBGRA . Il BMP verrà scritto con un'intestazione BITMAPV5HEADER.
- Se un file ha un BITMAPV5HEADER, decodifica come GUID_WICPixelFormat32bppBGRA.
Codec nativo GIF
Formati pixel decodificatore | Formati pixel del codificatore |
---|---|
GUID_WICPixelFormat8bppIndexed | GUID_WICPixelFormat8bppIndexed |
Codec nativo ICO
Formati pixel decodificatore | Formati pixel del codificatore |
---|---|
GUID_WICPixelFormat32bppBGRA |
Codec nativo JPEG
Formati pixel decodificatore | Formati pixel del codificatore |
---|---|
GUID_WICPixelFormat8bppGray | GUID_WICPixelFormat8bppGray |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat32bppCMYK | GUID_WICPixelFormat32bppCMYK |
Codec nativo PNG
Formati pixel decodificatore | Formati pixel del codificatore |
---|---|
GUID_WICPixelFormat1bppIndexed | GUID_WICPixelFormat1bppIndexed |
GUID_WICPixelFormat2bppIndexed | GUID_WICPixelFormat2bppIndexed |
GUID_WICPixelFormat4bppIndexed | GUID_WICPixelFormat4bppIndexed |
GUID_WICPixelFormat8bppIndexed | GUID_WICPixelFormat8bppIndexed |
GUID_WICPixelFormatBlackWhite | GUID_WICPixelFormatBlackWhite |
GUID_WICPixelFormat2bppGray | GUID_WICPixelFormat2bppGray |
GUID_WICPixelFormat4bppGray | GUID_WICPixelFormat4bppGray |
GUID_WICPixelFormat8bppGray | GUID_WICPixelFormat8bppGray |
GUID_WICPixelFormat16bppGray | GUID_WICPixelFormat16bppGray |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat32bppBGRA | GUID_WICPixelFormat32bppBGRA |
GUID_WICPixelFormat48bppRGB | GUID_WICPixelFormat48bppRGB |
GUID_WICPixelFormat64bppRGBA | GUID_WICPixelFormat48bppBGR |
GUID_WICPixelFormat64bppRGBA | |
GUID_WICPixelFormat64bppBGRA |
Codec nativo TIFF
Formati pixel decodificatore | Formati pixel del codificatore |
---|---|
GUID_WICPixelFormat1bppIndexed | GUID_WICPixelFormat1bppIndexed |
GUID_WICPixelFormat4bppIndexed | GUID_WICPixelFormat4bppIndexed |
GUID_WICPixelFormat8bppIndexed | GUID_WICPixelFormat8bppIndexed |
GUID_WICPixelFormatBlackWhite | GUID_WICPixelFormatBlackWhite |
GUID_WICPixelFormat4bppGray | GUID_WICPixelFormat4bppGray |
GUID_WICPixelFormat8bppGray | GUID_WICPixelFormat8bppGray |
GUID_WICPixelFormat16bppGray | GUID_WICPixelFormat16bppGray |
GUID_WICPixelFormat32bppGrayFloat | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat32bppBGRA |
GUID_WICPixelFormat32bppBGRA | GUID_WICPixelFormat32bppCMYK |
GUID_WICPixelFormat32bppPBGRA | GUID_WICPixelFormat48bppRGB |
GUID_WICPixelFormat48bppRGB | GUID_WICPixelFormat64bppRGBA |
GUID_WICPixelFormat32bppCMYK | |
GUID_WICPixelFormat40bppCMYKAlpha | |
GUID_WICPixelFormat64bppRGBA | |
GUID_WICPixelFormat64bppPRGBA | |
GUID_WICPixelFormat64bppCMYK | |
GUID_WICPixelFormat80bppCMYKAlpha | |
GUID_WICPixelFormat96bppRGBFloat* | |
GUID_WICPixelFormat128bppRGBAFloat | |
GUID_WICPixelFormat128bppPRGBAFloat |
Nota
GUID_ WICPixelFormat96bppRGBFloat è supportato solo in Windows 8, l'aggiornamento della piattaforma per Windows 7 e versioni successive.
Codec nativo HEIF
Formati di sola profondità e solo guadagno. Questi GUID in formato pixel consentono ai visualizzatori di foto di recuperare rappresentazioni alternative di un'immagine HEIF.
Formati pixel decodificatore | Formati pixel del codificatore |
---|---|
GUID_WICPixelFormat8bppDepth | GUID_WICPixelFormat8bppDepth |
GUID_WICPixelFormat8bppGain | GUID_WICPixelFormat8bppGain |
Codec nativo JPEG XR
Formati pixel decodificatore | Formati pixel del codificatore |
---|---|
GUID_WICPixelFormatBlackWhite | GUID_WICPixelFormatBlackWhite |
GUID_WICPixelFormat8bppGray | GUID_WICPixelFormat8bppGray |
GUID_WICPixelFormat16bppBGR555 | GUID_WICPixelFormat16bppBGR555 |
GUID_WICPixelFormat16bppGray | GUID_WICPixelFormat16bppGray |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat24bppRGB | GUID_WICPixelFormat24bppRGB |
GUID_WICPixelFormat32bppBGR | GUID_WICPixelFormat32bppBGR |
GUID_WICPixelFormat32bppBGRA | GUID_WICPixelFormat32bppBGRA |
GUID_WICPixelFormat48bppRGBFixedPoint | GUID_WICPixelFormat48bppRGBFixedPoint |
GUID_WICPixelFormat16bppGrayFixedPoint | GUID_WICPixelFormat16bppGrayFixedPoint |
GUID_WICPixelFormat32bppBGR101010 | GUID_WICPixelFormat32bppBGR101010 |
GUID_WICPixelFormat48bppRGB | GUID_WICPixelFormat48bppRGB |
GUID_WICPixelFormat64bppRGBA | GUID_WICPixelFormat64bppRGBA |
GUID_WICPixelFormat96bppRGBFixedPoint | GUID_WICPixelFormat96bppRGBFixedPoint |
GUID_WICPixelFormat96bppRGBFixedPoint | GUID_WICPixelFormat128bppRGBAFloat |
GUID_WICPixelFormat128bppRGBFloat | GUID_WICPixelFormat128bppRGBFloat |
GUID_WICPixelFormat32bppCMYK | GUID_WICPixelFormat32bppCMYK |
GUID_WICPixelFormat64bppRGBAFixedPoint | GUID_WICPixelFormat64bppRGBAFixedPoint |
GUID_WICPixelFormat128bppRGBAFixedPoint | GUID_WICPixelFormat128bppRGBAFixedPoint |
GUID_WICPixelFormat64bppCMYK | GUID_WICPixelFormat64bppCMYK |
GUID_WICPixelFormat24bpp3Channels | GUID_WICPixelFormat24bpp3Channels |
GUID_WICPixelFormat32bpp4Channels | GUID_WICPixelFormat32bpp4Channels |
GUID_WICPixelFormat40bpp5Channels | GUID_WICPixelFormat40bpp5Channels |
GUID_WICPixelFormat48bpp6Channels | GUID_WICPixelFormat48bpp6Channels |
GUID_WICPixelFormat56bpp7Channels | GUID_WICPixelFormat56bpp7Channels |
GUID_WICPixelFormat64bpp8Channels | GUID_WICPixelFormat64bpp8Channels |
GUID_WICPixelFormat48bpp3Channels | GUID_WICPixelFormat48bpp3Channels |
GUID_WICPixelFormat64bpp4Channels | GUID_WICPixelFormat64bpp4Channels |
GUID_WICPixelFormat80bpp5Channels | GUID_WICPixelFormat80bpp5Channels |
GUID_WICPixelFormat96bpp6Channels | GUID_WICPixelFormat96bpp6Channels |
GUID_WICPixelFormat112bpp7Channels | GUID_WICPixelFormat112bpp7Channels |
GUID_WICPixelFormat128bpp8Channels | GUID_WICPixelFormat128bpp8Channels |
GUID_WICPixelFormat40bppCMYKAlpha | GUID_WICPixelFormat40bppCMYKAlpha |
GUID_WICPixelFormat80bppCMYKAlpha | GUID_WICPixelFormat80bppCMYKAlpha |
GUID_WICPixelFormat32bpp3ChannelsAlpha | GUID_WICPixelFormat32bpp3ChannelsAlpha |
GUID_WICPixelFormat64bpp7ChannelsAlpha | GUID_WICPixelFormat40bpp4ChannelsAlpha |
GUID_WICPixelFormat72bpp8ChannelsAlpha | GUID_WICPixelFormat48bpp5ChannelsAlpha |
GUID_WICPixelFormat64bpp3ChannelsAlpha | GUID_WICPixelFormat56bpp6ChannelsAlpha |
GUID_WICPixelFormat80bpp4ChannelsAlpha | GUID_WICPixelFormat64bpp7ChannelsAlpha |
GUID_WICPixelFormat96bpp5ChannelsAlpha | GUID_WICPixelFormat72bpp8ChannelsAlpha |
GUID_WICPixelFormat112bpp6ChannelsAlpha | GUID_WICPixelFormat64bpp3ChannelsAlpha |
GUID_WICPixelFormat128bpp7ChannelsAlpha | GUID_WICPixelFormat80bpp4ChannelsAlpha |
GUID_WICPixelFormat144bpp8ChannelsAlpha | GUID_WICPixelFormat96bpp5ChannelsAlpha |
GUID_WICPixelFormat64bppRGBAHalf | GUID_WICPixelFormat112bpp6ChannelsAlpha |
GUID_WICPixelFormat48bppRGBHalf | GUID_WICPixelFormat128bpp7ChannelsAlpha |
GUID_WICPixelFormat32bppRGBE | GUID_WICPixelFormat144bpp8ChannelsAlpha |
GUID_WICPixelFormat16bppGrayHalf | GUID_WICPixelFormat64bppRGBAHalf |
GUID_WICPixelFormat32bppGrayFixedPoint | GUID_WICPixelFormat48bppRGBHalf |
GUID_WICPixelFormat64bppRGBFixedPoint | GUID_WICPixelFormat32bppRGBE |
GUID_WICPixelFormat128bppRGBFixedPoint | GUID_WICPixelFormat16bppGrayHalf |
GUID_WICPixelFormat64bppRGBHalf | GUID_WICPixelFormatBlackWhite |
Codec nativo DDS
Formati pixel decodificatore | Formati pixel del codificatore |
---|---|
GUID_WICPixelFormat32bppBGRA | GUID_WICPixelFormat32bppBGRA |
GUID_WICPixelFormat32bppPBGRA | GUID_WICPixelFormat32bppPBGRA |
Nota
Il codec DDS fornito da Windows supporta i file DDS codificati usando i valori di DXGI_FORMAT seguenti:
- DXGI_FORMAT_BC1_UNORM
- DXGI_FORMAT_BC2_UNORM
- DXGI_FORMAT_BC3_UNORM
Vengono decodificati e codificati come GUID_WICPixelFormat32bppBGRA o GUID_WICPixelFormat32bppPBGRA. Per altre informazioni, vedere Panoramica del formato DDS.
Estendibilità del formato pixel
I formati di immagine personalizzati possono usare formati di pixel non forniti in modo nativo da WIC, ad esempio YCbCr (YUV) e YCCK (Y/Cb/Cr/K). WIC offre un modello di estendibilità che consente il funzionamento dei formati pixel predefiniti e dei componenti aggiuntivi all'interno della stessa pipeline di imaging. Per integrare questi formati di pixel con la pipeline di imaging WIC, è necessario creare convertitori di formati di formato pixel per convertire i formati pixel dei componenti aggiuntivi in uno o più formati di pixel nativi. L'interfaccia principale per i convertitori di formati di compilazione è IWICFormatConverter.