C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Подробности - О палитрах / MFC в подробностях / Visual C++

Подробности - О палитрах

Понятие палитр было введено еще в те времена, когда экран монитора мог позволить отображать всего 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 комбинаций. Вот и все.


| |
Автор Каев Артем.
[AD]