2014-04-18 4 views
5

Attualmente sto facendo alcune manipolazioni di immagini in C# e sono confuso riguardo al formato Bgr32 Pixel. Le seguenti descrizioni sono da Microsoft MSDN: http://msdn.microsoft.com/en-us/library/system.windows.media.pixelformats(v=vs.110).aspxQual è il quarto canale in Bgr32 PixelFormat

  1. Bgr24 è un formato sRGB con 24 bit per pixel (BPP). Ogni canale di colore (blu, verde e rosso) viene assegnato a 8 bit per pixel (BPP). ✓
  2. Bgra32 è un formato sRGB con 32 bit per pixel (BPP). Ogni canale (blu, verde, rosso e alfa) viene assegnato 8 bit per pixel (BPP). ✓
  3. Bgr32 è un formato sRGB con 32 bit per pixel (BPP). Ogni canale di colore (blu, verde e rosso) viene assegnato a 8 bit per pixel (BPP). -> (⊙.☉)? WTF

3 canali ogni 8 bit -> 3x8bit = 24bit

cosa è/sono l'ultimo canale/i restanti 8 bit per?

Grazie in anticipo

+1

ho aggiunto un link che mostra il vantaggio di andare in PGBRA, non è ovvio all'inizio ma una volta compreso il concetto probabilmente non tornerai mai più indietro: D – Aybe

risposta

5

non viene utilizzato, ma avente un colore rappresentato come numero intero ragioni pratiche sia per la lettura o la scrittura, esso è allineato.

Alla fine rappresenta un colore a 24 bit e il tipo più vicino per rappresentare un numero intero a 32 bit. Sarebbe un po 'strano rappresentare tale colore con due numeri interi: un intero a 16 bit (breve) e un intero a 8 bit (byte).

Ora non viene utilizzato il 25% dello spazio, che in definitiva è uno spreco.

Rispetto a RGB24 ha più senso utilizzarlo nel modo in cui un colore è rappresentato da un intero in cui, come nel primo, è necessariamente 3 byte. Ovviamente devi disimballarlo per ottenere i diversi componenti ma queste operazioni sono davvero economiche oggi.

Personalmente userei RGB24 solo se ci sono vincoli di memoria o qualsiasi altro tipo di vincolo come ad esempio l'hardware. Qualsiasi altra cosa mi piacerebbe andare RGBA e anche PBGRA dal momento che ha molti vantaggi come la trasparenza e risparmia calcoli extra durante le operazioni di blitting e una migliore fusione per contorni trasparenti.

per i benefici tale rappresentazione può offrire a voi io suggerirei di dare un'occhiata a questa domanda: Pre-multiplied alpha compositing (un'occhiata ai risultati che ho postato)

Problemi correlati