Страница 25 из 51
О палитрах Понятие палитр было введено еще в те времена, когда экран монитора мог позволить отображать всего 256 цветов. С того времени прошло много лет, но понятие палитры осталось. С чем это связано ? Да с тем же самым. Windows можно перевести в режим 256 цветов. Кроме того при наличии палитр файлы намного компактнее. Вот она и существует. Ну, например, при 256 цветах на экране есть необходимость отобразить фотографию моря например. Как вы понимаете набор цветов для отображения моря немного отличается от набора цветов скажем леса !! :-))) Конечно кто бы мог догадаться, но факт у моря оттенки синего, а у леса зеленого и если цветов всего 256, то для отображения фотографии придется задуматься. Итак, а что же реально палитра представляет ??? Это таблица соответствия кода цвету примерно так. номер Reb Green Blue 1 0 0 0 2 100 0 0 .......
Самое главное, что пользуясь палитрой Вы не даете конкретный цвет, а даете код (его положение) в палитре. Вот и вся идея. Каждый рисунок, если он создан в формате 256 цветов, содержит свою таблицу, которая и позволяет его отображать близко к реальности. Исключения составляют 24 битовые рисунки, им палитра не нужна, но и размер они имеют внушительный, так что дело за Вами. Применение палитры втрое уменьшает размер файла. Паритр несколько, то есть две системная логическая
Системная палитра - это палитра Windows и её трогать не надо. Она отнимает некоторое количество цветов (20) и поэтому у Вас в распоряжении их несколько меньше 236. Логическая - это же палитра вашего приложения. В GDI есть функции, которые позволяют изменять эти 20 палитр. Можно попробовать, только Вы потом точно узнаете свой Windows ???? MFC имеет несколько функций, которые должны облегчить Вам жизнь - это CPalette и CDC. Несмотря на всё это думать над палитрами надо постоянно. Точное отображения двух картинок с разными палитрами возможно только в режиме TRUE COLOR. То есть если Вы захотите одновременно просматривать две картинки с разными палитрами полностью заполнеными, то не сможете это сделать в режиме 256. Только в TRUE COLOR. В Windows есть понятие менеджера палитр. Это, как бы сказать, программа чтоли или лучше модуль, который производит операции с палитрами при этом он наделен некоторыми навыками. То есть, например, что если Вы определили палитру, в которой всего 4 дополнительных цвета и запустили приложение, а во втором приложении тоже определено 4 цвета, то оба они будут отражаться без искажений. Этот менеджер просто объединит эти палитры. Но всему етсь предел и этот предел 256 цветов. Откуда взялось это проклятое 256 ? Да вот откуда, код цвета хранится в одном байте. А один байт может хранить число от 0 до 255, всего 256 комбинаций. Вот и все. |