Yoksel: Блог/2008?/11?/03?/ПоддержкаРежима256Цветов ...
SourceForge.net Logo

Home Page | Изменения / НовыеКомментарии / Справка / Помочь проекту | Вход:  Пароль:  

Блог

Поддержка режима 256 цветов

Режим «256 цветов» (8 бит на пиксел) в Windows стоит особняком. Основная проблема в нем – непривычность его поддержки. Казалось бы, вот режим “True color”, 24 бита на пиксел – 16 млн. цветов. Вот режим “High color”, 16 бит на пиксел, 65536 цветов. Продолжая, должны получить режим 8 бит на пиксел, 256 цветов? А вот хрен. Если не предпринять некоторые специальные меры, то приложению в режиме «256 цветов» будет доступно всего навсего 20 (двадцать) стандартных цветов Windows, которые используются для отрисовки интерфейса.


Вот все поддерживаемые цвета Мокселя:
http://yoksel.net.ru/images/Control/8bpp/MoxcelPalette.png


А вот как Моксель отрисовывает эти цвета в режиме 256 цветов:
http://yoksel.net.ru/images/Control/8bpp/MoxcelPalette256.png


Вот так. Режим 256 цветов, отрисовываем только 56, но большая часть цветов отрисовывается при помощи «смешения», когда цвет имитируется при помощи «смешивания» пикселов разного цвета. Фактически же задействуется только 20 стандартных цветов.


Чтобы приложению в режиме «256 цветов» было действительно доступно 256 цветов, приложение должно перед отрисовкой настроить «палитру» – специальный объект, отображающий индексы от 1 до 256 в RGB-индексы цвета. В последнем хотфиксе Йокселя была реализована поддержка палитры и теперь Йоксель отображает цвета Мокселя вот так:
http://yoksel.net.ru/images/Control/8bpp/YokselMoxcel.png
Для контраста справа расположено окно Мокселя, отображающее тот же документ.


Палитра в Йокселе строится следующим образом: сначала создается стандартная палитра 256 цветов, а затем часть цветов из нее замещается цветами Мокселя. В результате все цвета Мокселя в режиме «256 цветов» отображаются без искажений. Рассмотрим пример:
http://yoksel.net.ru/images/Control/8bpp/ExampleDocument.png
Слева окно Йокселя, справа – Мокселя с этим же документом.


Во-первых, сначала передадим привет нашим маленьким желтым друзьям из фирмы 1С, которые любят делать цветастые документы, совершенно не заботясь о том, как они будут выглядеть в терминале в режиме «256 цветов» – верхняя надпись в Мокселе почти нечитаема.


Во-вторых, мы видим искажение цвета надписи на красном фоне – смешение цветов происходит только при закрашивании однотонных областей и на цвет текста, соответственно, не распространяется. В результате для цвета надписи был использован ближайший цвет из стандартных 20 – белый.


В-третьих, мы наблюдаем смешение при отрисовке заголовка нижней таблицы. Вот изображение покрупнее (сверху Йоксель, снизу Моксель):
http://yoksel.net.ru/images/Control/8bpp/ExampleDocumentLarge.png


И, наконец, в-четвертых, как можно видеть при отрисовке документе Йокселем вообще не наблюдается каких-либо искажений – документ выглядит так же, как выглядел бы в режиме “High color” или “True color”.


Используемая Йокселем палитра не только позволяет отображать документы mxl без искажений, но и приводит к тому, что документы Excel со стандартной палитрой также выглядят почти без искажений. Вот стандартная палитра Excel:
http://yoksel.net.ru/images/Control/8bpp/ExcelPalette.png


А вот как выглядит эта палитра в Йокселе в режиме «256 цветов»:
http://yoksel.net.ru/images/Control/8bpp/YokselExcel.png


Конечно, совпадения на 100% нет, но отображение цветов практически совпадает.


Таким образом, благодаря автору данной темы: http://yoksel.net.ru/forum/topic.php?id=26
в Йокселе теперь нормальная поддержка режима «256 цветов», что, думаю, будет очень полезно при использовании 1С в терминальном режиме.


Ссылок на эту страницу нет


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]