Графические устройства

         

Описание рисунка и маски курсора



Пример 6.3. Описание рисунка и маски курсора

Pnt image db 00, 00, 00,00, 00, 00, 00 00,00, no, nn nn no oo
db 00, 00, 00,00, 00, 00, 00, 00,00, 00, 00, 00, 00,00
db 00, 00, FF, 00, 00, 00, 00, 00,00, 00, 00, 00, 00,00
db 00, 00, FF, FF, 00, 00, 00, 00,00, 00, 00, 00, 00,00
db 00, 00, FF,FF, FF, 00, 00, 00,00, 00, 00, 00, 00,00
db 00, 00, FF,FF, FF, FF, 00, 00,00, 00, 00, 00, 00,00
db 00, 00, FF, FF, FF, FF, FF, 00,00, 00, 00, 00, 00,00
db 00, 00, FF, FF, FF, FF, FF, FF, 00, 00, 00, 00, 00,00
db 00, 00, FF, FF, FF, FF, FF, FF, FF, 00, 00, 00, 00,00
db 00, 00, FF, FF, FF, FF, FF, FF, FF, FF, 00, 00, 00,00
db 00, 00, FF,FF, FF, FF, FF, FF, FF, FF, FF, 00, 00,00
db 00, 00, FF, FF, FF, FF, FF, FF, 00, 00, 00, 00, 00,00
db 00, 00, FF, FF, FF, 00, FF, FF, 00, 00, 00, 00, 00,00
db 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, 00, 00, 00,00
db 00, 00, FF, 00, 00, 00, 00 FF, FF, nn 00 nn ПП ПО


db 00, 00, 00,00, 00, 00, 00, FF,FF, 00, 00, 00, 00,00
db 00, 00, 00,00, 00, 00, 00, 00, FF, FF, 00, 00, 00,00
db 00, 00, 00,00, 00, 00, 00, 00, FF, FF, 00, 00, 00,00
db 00, 00, 00, 00, 00, 00, 00, 00,00, FF, FF, 00, 00,00
db 00, 00, oo on nn nn nn 00,00, FF, FF, 00, 00,00
db 00, 00, 00,00, 00, 00, 00, 00,00, 00, 00, 00, 00,00
pntmask db FF, 00, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF
db FF, 00, 00, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF
db FF, 00, 00,00, FF, FF, FF, FF, FF, FF, FF, FF, FF,FF
db FF, 00, 00,00, 00, FF, FF, FF,FF, FF, FF, FF, FF,FF
db FF, 00, 00,00, 00, 00, FF, FF, FF, FF, FF, FF, FF,FF
db FF, 00, 00,00, 00, 00, 00, FF, FF, FF, FF, FF, FF, FF
db FF, 00, 00,00, 00, 00, 00, 00, FF, FF, FF, FF, FF,FF
db FF, 00, 00,00, 00, 00, 00, 00,00, FF, FF, FF, FF,FF
db FF nn 00,00, nn nn nn 00,00, on FF FF FF FF
db FF, 00, 00,00, 00, 00, 00, 00,00, 00, 00, FF, FF, FF
db FF, 00, 00,00, 00, 00, 00, 00,00, 00, 00, 00, FF, FF
db FF, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, FF
db FF, 00, 00, 00, 00, 00, 00, 00, 00, FF, FF, FF, FF, FF
dc FF, 00, 00, 00, 00, 00, 00, 00, 00, :-:-, FF, FF, FF, FF
db FF, 00, 00, 00, FF, FF, 00, 00, 00, 00, FF, FF, FF, FF
db FF, ou, 00, FF, FF, FF, 00, 00, 00, 00, FF, FF, FF, FF
db FF, 00, FF, FF, FF, FF, t F, 00, 00, 00, 00, FF, FF, FF
db FF, FF, FF, FF, FF, FF, FF, 00, 00, 00, 00, FF, FF, FF
db FF, FF, FF, FF, FF, FF, FF, FF, 00, 00, 00, 00, FF, FF
db FF, FF, F"F FF, FF, FF, FF, FF, 00, 00, 00, 00, FF, Ь г
db FF, FF, FF, FF, FF, FF, FF, FF, FF, 00, 00, FF, FF, FF

В примере 6.3 метки pntimage и pntmask предшествуют директиве db, поэтому двоеточие после них не ставится. Если вы будете включать текст примера в свою программу, то все коды FF надо заменить на OFFh или на десятичное число -1. Здесь это не сделано только из соображений наглядности, чтобы можно было увидеть образованный из цифр рисунок. Текст примера лучше всего включить в сегмент данных вашей программы. Для того чтобы рисунок курсора был черно-белым, нулевой регистр цвета видеокарты должен быть очищен, а в последнем (255-м) регистре должен находиться код белого цвета (3F,3F,3F) (см. раздел).

Подведем итог всему сказанному в данном разделе. Курсор, хранящийся в файле формата icon, не удобно использовать без предварительного преобразования рисунка и маски и установки палитры используемых цветов. Если вы хотите, чтобы ваша задача могла работать с файлами формата icon, то в нее придется включить специальную процедуру, выполняющие описанные в данном разделе действия. Если же нужен только один рисунок курсора, то его преобразование проще выполнить вне задачи, а в ее исходный текст включить результат, как это сделано в примере 6.3.

Преобразования выполняются вручную или с помощью специально составленной программы, поскольку стандартные графические редакторы не работают с файлами формата icon. Преобразование вручную занимает сравнительно немного времени. Сначала исходный файл преобразуется в символьную форму, т. е. в файл, содержащий шестнадцатеричные коды (дамп). А затем символьный файл редактируют с помощью любого текстового редактора, например, входящего в Norton Commander и вызываемого нажатием функциональной клавиши <F4>.

 


Содержание раздела