Есть буффер с тремя байтами (r,g,b) 24 бита. Нужно после дизеренга получить 15 байт, и уместить их в 2 байта. Т.е. было по 8 бит на цвет, результат должен быть 5 бит на цвет (+1 бит пустой, роли особой не играет сейчас).
Итак, буфер есть, функция дизеренга есть (которая преобразует эти 3 байта в 5 битные значения. И выдает как результат обновленные (но все еще 3) байта.
Нужно получить 2 байта.
Т.е. было:
char *buf[2];
char buf[0]=255;
char buf[1]=255;
char buf[2]=255;
далее dither(buf);
и имеем:
char buf[0]=248;
char buf[1]=248;
char buf[2]=248;
Теперь из результата нужно сделать 2 байта. Т.е. сдвинуть их в кучу. Как это релизовать и как быть с char ? сначала в int ковертить, потом чтото творить со сдвигами, или как ?