Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 10.07.2019, 10:34   #11
tae1980
Участник клуба
 
Регистрация: 02.02.2009
Адрес: г. Саратов
Сообщений: 813
Репутация: 59
По умолчанию

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

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

Размер: 22.4 Кб
Видно что 8 бит в основном отличается на единицу. Могут ли всплески отличий на два, быть результатом ошибки подбора цвета или на Профи или для Стандартного Спектрума?
__________________
С уважением, Алексей.

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

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

Попробовал просо уменьшать на единицу 8 битные значение получил такое. Так что так делать нельзя.
Нажмите на изображение для увеличения
Название: 2019-07-10_13-50-25.jpg
Просмотров: 40
Размер:	90.8 Кб
ID:	97180
Цитата:
Сообщение от 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 в 14:04.
tae1980 вне форума   Ответить с цитированием
Старый 10.07.2019, 18:12   #15
tae1980
Участник клуба
 
Регистрация: 02.02.2009
Адрес: г. Саратов
Сообщений: 813
Репутация: 59
По умолчанию

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

Код:
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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с ems api: корректная работа только при явном указании города mrdemkin JavaScript, Ajax 3 02.03.2015 19: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


04:45.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru