2014-04-18 13 views
5

Obecnie robię pewne rzeczy manipulacji obrazem w C# i jestem zdezorientowany co do formatu Bgr32 Pixel. Poniższe opisy są od Microsoft MSDN: http://msdn.microsoft.com/en-us/library/system.windows.media.pixelformats(v=vs.110).aspxCo to jest czwarty kanał w Bgr32 PixelFormat

  1. BGR24 to format sRGB z 24 bitów na piksel (BPP). Każdy kanał koloru (niebieski, zielony i czerwony) ma przydzielone 8 bitów na piksel (BPP). ✓
  2. Bgra32 to format sRGB z 32 bitami na piksel (BPP). Każdy kanał (niebieski, zielony, czerwony i alfa) ma przydzielone 8 bitów na piksel (BPP). ✓
  3. Bgr32 to format sRGB z 32 bitami na piksel (BPP). Każdy kanał koloru (niebieski, zielony i czerwony) ma przydzielone 8 bitów na piksel (BPP). -> (⊙.☉)? WTF

3 kanały po 8 bitów -> 3x8bit = 24 bity

co jest/są ostatniego kanału/pozostałych 8 bitów na?

Dzięki z góry

+1

Dodałem link, który pokazuje masz przewagę w prowadzeniu PGBRA, na początku nie jest to oczywiste, ale kiedy zrozumiesz koncepcję, prawdopodobnie nigdy nie wrócisz: D – Aybe

Odpowiedz

5

To nie jest używany, ale posiadające kolor reprezentowany jako liczba całkowita ma powodów praktycznych, czy do czytania lub pisania, jest wyrównany.

W końcu reprezentuje 24-bitowy kolor i najbliższy typ reprezentujący 32-bitową liczbę całkowitą. Byłoby trochę dziwne, aby reprezentować taki kolor za pomocą dwóch liczb całkowitych: 16-bitowej (krótkiej) liczby całkowitej i 8-bitowej (bajtowej) liczby całkowitej.

Teraz 25% powierzchni nie jest używane, co ostatecznie jest odpadem.

W porównaniu do RGB24 bardziej sensowne jest używanie go w taki sposób, że kolor jest reprezentowany przez jedną liczbę całkowitą, gdzie podobnie jak w pierwszym jest to 3 bajty. Oczywiście musisz rozpakować go, aby uzyskać różne elementy, ale operacje te są dziś naprawdę tanie.

Osobiście użyłbym RGB24 tylko wtedy, gdy istnieją ograniczenia pamięci lub innego rodzaju ograniczenia, na przykład sprzętu. Cokolwiek innego chciałbym przejść RGBA, a nawet PBGRA, ponieważ ma wiele zalet, takich jak przejrzystość i oszczędza dodatkowe obliczenia podczas operacji blendingu i lepszego mieszania dla przezroczystych konturów.

Do zalet takich reprezentacja może zaoferować wam sugeruję, aby spojrzeć na to pytanie: Pre-multiplied alpha compositing (spojrzeć na wyniki I zostały zaksięgowane)