Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2019, 09:34   #11
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Соответственно, после преобразования цвета и получения 3-х битового значения для синего цвета, полученный результат надо сдвинуть вправо на один бит.
Хорошо. Предположим получили мы белый цвет 111 111 111. Что двигаем?
1. Всё. 110 110 110. Цвет белый, Но третий бит всегда 0 у всех цветов.
2. Или только синий 111 111 110. Но тогда цвет не белый.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 10.07.2019, 11:56   #12
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

На основе данных оп палитре стандартного Спектрума в rgb и этих же цветов в палитре Профи составил такую таблицу. Может у кого появятся мысли. Значений перевода стандартных цветов Спектрума в rgb может много, взял из одной статьи.
2019-07-10_12-52-30.png
Видно что 8 бит в основном отличается на единицу. Могут ли всплески отличий на два, быть результатом ошибки подбора цвета или на Профи или для Стандартного Спектрума?
С уважением, Алексей.

Последний раз редактировалось tae1980; 10.07.2019 в 12:02.
tae1980 вне форума Ответить с цитированием
Старый 10.07.2019, 12:17   #13
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Мне кажется, что Вы хотите странного. Естественно, что идеальной цветопередачи Вы не добьётесь. Грубо говоря, Вам всегда надо будет выбирать, что важнее:
Цитата:
Сообщение от tae1980 Посмотреть сообщение
Что двигаем?
1. Всё. 110 110 110. Цвет белый, Но третий бит всегда 0 у всех цветов.
2. Или только синий 111 111 110. Но тогда цвет не белый.
Но если честно, я вообще не представляю, как Вы собираетесь отображать готовые картинки при двух цветах на знакоместо. Вся прелесть спектрумовской графики в том, что художники специально подбирали части изображения по этой сетке знакомест
Black Fregat вне форума Ответить с цитированием
Старый 10.07.2019, 13:01   #14
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Попробовал просо уменьшать на единицу 8 битные значение получил такое. Так что так делать нельзя.
2019-07-10_13-50-25.jpg
Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Мне кажется, что Вы хотите странного. Естественно, что идеальной цветопередачи Вы не добьётесь.
Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Но если честно, я вообще не представляю, как Вы собираетесь отображать готовые картинки при двух цветах на знакоместо.
1. Я переношу картинку не просто на Спектрум, а под его клон Profi с расширенным эаканом 512х240, палитрой 16 из 256 цветов, 2 цвета на каждые 8 точек (не знакоместо которое 8х8).
2. Палитра 8 битная rgb 332. По сути ни чем не отличаться от палитры на любой другой машине. Я да же нее сразу обратил внимание, что белый цвет смещен (мне попробовали объяснить почему это так, но понял мало - для меня это гемморой).
3. Если принципы построения одинаковые, то почему нельзя найти формулы для пересчета цвета? И почему при правильных формулах, цвета должны "сильно" отличаться? Ну да, похоже пропадают примерно 14 из 256 цветов, но это легко учесть при подготовке изображения в фотошопе.
С уважением, Алексей.

Последний раз редактировалось tae1980; 10.07.2019 в 13:04.
tae1980 вне форума Ответить с цитированием
Старый 10.07.2019, 17:12   #15
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

УРА!!! Решение найдено! До безумия простое
Значение 24бит каждого цвета *8/7 и берем первые три бита для красного и зеленого и 2 для синего. Всё!
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 22.07.2019, 21:19   #16
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Код:
byte getColor(byte red, byte green, byte blue)
{
   byte new_red = (byte)(6*((double)red/255.0));
   byte new_green = (byte)(6*((double)green/255.0));
   byte new_blue = (byte)(6*((double)blue/255.0));
   return (new_red << 5) | (new_green << 2) | (new_blue>>1);
}
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с ems api: корректная работа только при явном указании города mrdemkin JavaScript, Ajax 3 02.03.2015 18:23
Как работать с системной палитрой?? artiom4356 Общие вопросы Delphi 0 29.05.2014 18:56
Задания по работе с палитрой компонентов Additional.(Delphi) Наташок Помощь студентам 1 18.04.2011 21:50
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00