Witam.
Robię zadanie na grafikę komputerową i napotkałem na problem. Muszę zapisać dane koloru (RGB -> 2 bity na pixel). Problem w tym, że nie mogę uzupełnić składowej zerami, aby dana zawierała jeden bajt. W chwili obecnej mam strukturę:
struct kolor {
unsigned r:2;
unsigned g:2;
unsigned b:2;
unsigned wolna:2;
};
Jednak muszę z niej wyrzucić ostatnią składową i jakoś mądrze to zapisać. Dane mapy bitowej przechowuję w tablicy
kolor tablica_pixeli[3000000];
odczytywanej metodą scanline. Plik zawiera dane binarne z tablicy wyrzucone przez funkcję
pliczek.write((char *) &buffer, sizeof(struct kolor));
W jaki sposób przejść na 6 bitów? Słyszałem o przesunięciu bitowym. Jest gdzieś to dobrze wyjaśnione?
Pozdrawiam,
Grzegorz