Есть необработанный файл (массив данных). Все это выводится на экран посредством битмапа. Не могу вывести это в оттенках серого. Мучался с палитрой, не вышло. Как?
надеюсь 256 палитра ? Есть один способ. заметь, что через каждые 16, в палитре начинается цветвой "блок", там цвета начинаются от светлого к темному (или наоборот - не важно). а http://forum.pascal.net.ru/index.php?showtopic=9037&hl= вот тут я указывал, что от 16 до 32 идет ч\б палитра. Попробуй сопоставить каждому цвету , цвет из этого интервала.
Это вариант преобразования без смены палитры. Есть конечно вариант со сменой палитры.
вот пример для следующих режимов: VGA, VESA и еще какого-то нестандартного режима, Инициализация режимов (на всякий случай)...
asm {$IFDEF VGA} mov ax,13h { for VGA adapter: 320x200x256 } {$ENDIF} {$IFDEF CIRRUS} mov ax,5Fh { for Cirrus Logic adapter: 640x480x256 } {$ENDIF} {$IFDEF VESA} mov ax,4F02h { for VESA-compatible adapter: 640x480x256 } mov bx,101h {$ENDIF} int 10h end;
То Altair: спасибо, этот модуль пригодится. Но хотелось бы под виндовс подкопаться без ассемблера. Скорее нужно рыть в сторону заголовка. У меня не проходит следующий код:
Код
var LogPalette: PLogPalette; I: Integer; begin
GetMem(LogPalette, SizeOf(TLogPalette) + (NumShades-1)*SizeOf(TPaletteEntry)); LogPalette.palVersion := $300; LogPalette.palNumEntries := 256; for I := 0 to 256 do begin LogPalette.palPalEntry[I].peRed := I; LogPalette.palPalEntry[I].peGreen := I; LogPalette.palPaLEntry[I].peBlue := I; LogPalette.palPalEntry[I].peFlags := 0; end;
Result := CreatePalette(LogPalette^); FreeMem(LogPalette)
В общем result напрямую присваиваю в один из параметров структуры HBitmap. Не проходит.
Гробовщик
14.02.2006 16:33
Все. Тема закрыта. Спасибо за ответы.
Altair
14.02.2006 19:59
Цитата
Но хотелось бы под виндовс подкопаться без ассемблера
Так надо было сразу скзаать, что ты в 32 бита пишешь. Есть ведь специальный форум для этого.
Цитата
Все. Тема закрыта. Спасибо за ответы.
Жалко конечно, что ты не сказал как решил проблемму.
Заходи на форум еще !
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.