IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> RGB =>> Default
сообщение
Сообщение #1


Гость






Как перевести пиксел из RGB палитры в обычную для Pascal (например, для 16 цветов?)
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Вишь ли Despot "обычная для Pascal 16-цветная палитра" - это первые 16 цветов той самой RGB-палитры ;). Если ты спрашиваешь, как изменить вот эти первые 16 цветов, то код следующий (асм, паскаль):

Код
asm
       mov dx,3C8h {Режим записи PEL-адреса}
       mov al,0        {Стартовый адрес регистра}
       out dx,al   {Говорим об это ЦАП-у}
       inc dx        {Запись данных}
       cld
       mov cx,16*3 {16 штук}
       push ds        
       mov ds,word ptr P + 2 {Это адрес палитры}
       mov si,word ptr P
{Этот код для переделанной палитры BGR -> RGB}
@PalSet:lodsb            {Получаем байт в AL}
       out dx,al            {Посылаем в ЦАП}
       loop @PalSet
       pop ds
       mov ah,0            {Ждем клавишу}
       int 16h
end;


Procedure PaletteSet;
Type
   RGB = record
   Red:Byte;
   Green:Byte;
   Blue:Byte;
   {Alpha:Byte; Это ежели под Win'95}
   end;

   Palette = array[1..256] of RGB;
  {На всякий случай - это массив для чтения палитры}
Var
  P:^Palette;
  I:Integer;
begin
    Port[$3C8]:=0;
    For i:=1 to 256 do
    begin
         Port[$3C9]:=P^[i].Blue DIV 4;
         {Что характерно - порядок обратный
         B=>G=>R, да и вывод изображения
         идет снизу вверх}
         Port[$3C9]:=P^[i].Green DIV 4;
         Port[$3C9]:=P^[i].Red DIV 4;
    end;
end;


Но если и это не то, дык выложил бы исходник, глянули бы. И сколько цветов картинка?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Despot   RGB =>> Default   23.03.2003 0:25
GLuk   Re: RGB =>> Default   23.03.2003 1:27
Shadow   Re: RGB =>> Default Shadow   23.03.2003 8:02
Despot   Re: RGB =>> Default   23.03.2003 10:57
GLuk   Re: RGB =>> Default   23.03.2003 12:03
Despot   Re: RGB =>> Default   23.03.2003 18:26
GLuk   Re: RGB =>> Default   23.03.2003 20:35
Despot   Re: RGB =>> Default   23.03.2003 22:21
Shadow   Re: RGB =>> Default ot SHADOW   23.03.2003 22:49
Alex   Re: RGB =>> Default   23.03.2003 23:42
Shadow   Re: RGB =>> Default   24.03.2003 2:10
Slam   Re: RGB =>> Default   24.03.2003 20:36


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 5:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name