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.

Concettuale

Panoramica del componente Windows Imaging

GUID WIC e CLSID

Altre risorse

Come scrivere un CODEC abilitato per WIC

Panoramica del formato foto HD