SergeyVas 0 6 октября, 2011 Опубликовано 6 октября, 2011 · Жалоба Так у Вас неправильное число сдвиго в- надо 16 и 8, а не то, что у Вас. какой компилятор? - ещё раз. Теперь работает, цвета нормальные )) _remappalette( i, ( (dwordpolitra[0]>>2) << 16) | ((dwordpolitra[1]>>2)<<8) | (dwordpolitra[2]>>2) ); Компилятор watcom. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 6 октября, 2011 Опубликовано 6 октября, 2011 (изменено) · Жалоба А зачем яркость всех цветов уменьшаете (я про сдвиг вправо на 2 разряда)? Простой вариант _remappalette( i, (dwordpolitra [0] << 16) | (dwordpolitra [1] << 8) | dwordpolitra [2]); не проходит? Изменено 6 октября, 2011 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 6 октября, 2011 Опубликовано 6 октября, 2011 · Жалоба Только так удалось получить картинку один в один виндовс дос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 7 октября, 2011 Опубликовано 7 октября, 2011 (изменено) · Жалоба А что не так в случае правильного (как я нарисовал) формирования элемента палитры? Может, разобраться стоит с форматом bmp? ps: можно весь код? А то, мне кажется, что переделаный Вами на unsigned long * реперь захвыатывает соседние элементы из палитры. Надо был сделать как я говорил - приводить перед сдвигом. unsigned char * palitra; .... const unsigned long pe = ((unsigned long) palitra [0] << 16) | ((unsigned long) palitra [1] << 8) | ((unsigned long) palitra [2] << 0); Индексы и имена проставьте сами. Изменено 7 октября, 2011 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться