помогите кто может! срочно нужна таблица соответствия кодов цветов для DOSа и WINDOWSа , а то я не могу нормально использовать файл .bmp в
паскалевской программе.
если у кого есть скиньте ,пожалста, мне на ящик - <rkv.gorodok.net>
Заранее благодарен.
BlackShadow
28.05.2004 20:37
2 Administrators:
вам не кажется, что пора создавать раздел "перлы"?
На такие вопросы так и подмывает ответить что-нибудь типа:
Если сзжать BMP по алгоритму Хафмана, а затем три раза преобразовать в фрактальный формат любым способом, найти там все вхождения русской буквы "х", возвести это число в куб, факторизовать и каждый сомножитель логарифмировать по любому модулю, то получишь коэффициенты многочлена-преобразователя.
chel, ты формат BMP знаешь??? Если нет, то как ты его выводить собрался? Может, вопрос не правильно поставлен? А если знаешь, то поясни пожалуйста по-подробнее, что ты понимаешь под "цветами Windows" м "цветами DOS".
BlackShadow, ты зря погорячился!
Действительно есть такая проблемма. Она у меня тоже возникала, и я ее не решил до сих пор.
Просто chel не правильно задал вопрос. Если он позволит, я его подправлю:
Попробуйте вывести рисунок BMP на экран, а затем еще один.
Старый рисунок испортится, потому что будет введена новая палитра!
А chel хочет узнать, как не меняя СИСТЕМНУЮ палитру, выводить рисунки, как это делает винда.
Oleg_Z проблема скорее всего в том что в досе в RGB формате исп. цвета 0..63 ,поэтому надо делать так :
Код
r:=bmp.r shr 2;
g:=bmp.g shr 2;
b:=bmp.b shr 2;
а вообще здесь есть
Цитата
а вообще здесь есть
Да я знаю как выводить, но
не знаю как не изменять системную палитру.
винда работает в 32 битном режиме ,и поэтому у нее нет палитры.
а на компах на которых мониторы не поддерживают 32бита ,тама ищется цвета которые наиболее рядом с цветом кот надо вывести.
ЗЫ
кода дать не могу.
BlackShadow
31.05.2004 14:51
virt прав. В таком случае надо просто подбирать подходящий цвет. проще всего по пропорции.
Если погорячился, то пардон, но иногда такие вопросы добивают.
Цитата
проще всего по пропорции.
По какой пропорции? (мне virt один вариант уже предложил, хочу другое мнение услышать)
BlackShadow
31.05.2004 20:12
Ну, если у тебя 15-битный режим, то можно было бы попробывать так:
Код
Function RGB15(r,g,b:Byte):Word;Assembler;
Asm
MOV AL,[r]
SHL AX,5
OR AL,[g]
SHL AL,5
OR AL,[b]
AND AX,7FFFh
End;
Function RGB32ToRGB15(Color:LongInt):Word;
Var
r,g,b:Byte;
Begin
r:=(Color And $00FF0000) Shr 16;
g:=(Color And $0000FF00) Shr 8;
b:=(Color And $000000FF);
r:=Round(31*r/255);
g:=Round(31*g/255);
b:=Round(31*b/255);
RGB32ToRGB15:=RGB15(r,g,b)
End;
Или что-то типа этого. А что
virt прислал что-то другое? Выложи - интересно.
Цитата
берешь цвета из BMP ,берешь из сист палитры ,берешь их разности по компонентам ,возводишь в квадрат например ,и у цвета из сист палитры ,у которого сумма квадратов самая меньшая (256 цветов ,можно и все перебрать) и есть тот цвет
BlackShadow
1.06.2004 16:23
Если честно, то долговатый метод. Особенно, если часто цвета менять.
BlackShadow
а если у тебя 256 цветов ,тогда ты как пропорцию сохранишь?
BlackShadow
11.06.2004 18:03
virt, а как твой метод под такой облом переделать?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.