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

> RGB to indexed color palette, перевод из RGB в палитру 256 цветов
сообщение
Сообщение #1


Новичок
*

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

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


Как подогнать три цвета в один из 256-цветной палитры?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(-TarasBer- @ 18.09.2011 11:53) *
Протестую. Этого более чем достаточно даже в стандартной палитре. Для особо привередливых - можно применить специальные фильтры. А для статичной картинки можно и палитру подогнать.
Цитата(TarasBer @ 18.09.2011 11:58) *
Палитру можно и поменять на оптимизированную.
Тарас, я спорить не буду, поскольку все определяется конкретными целями и т.п. Скажем, если бы я сказал, что сказал выше, в аудитории полиграфщиков - они бы просто пальцем у виска покрутили: "вы слышали? этот идиот говорил про 8-битную палитру! глупец.." Да и ты сам сделал _несколько_ оговорок в своих доводах )).

Цитата
А потом для каждого пиксела смотришь ближайший к нему цвет из палитры,
Сейчас попробую конкретно объяснить..

Цитата(Билли Боб @ 18.09.2011 15:08) *
Такая палитра
Так, Билли, этта, Боб, слушай, значить, суда. (я тут запятую не пропустил?)

1. Выведи все цвета от 0 до 255 на экран (типа как ты привел выше, но чтоб ты знал ТОЧНО, где какой номер).

2. Нажми PrtSc.

3. Идешь в свой любимый редактор (я использовал MS Paint, который в Windows), начинаешь новый рисунок и вставляешь в него буфер (ctrl-V).

4. Сходи на кухню, покушай и свари себе кофе. Работа предстоит долгая и нудная.

5. Используй тул "пипетка" (dropper, color picker), ткни курсором в самый первый цвет (например, это было 123 0 234)

6. Иди в "edit colors" и прочитай там значения RGB для этого цвета.

7. Создай новый текстовый файл в блокноте (или в редакторе FAR), my_palette256.txt, и запиши туда строку:
123 0 234

8. Идешь обратно в редактор картинок, снова выбираешь пипетку и кликаешь в следующий цвет.

9. Снова идешь в color edit и выясняешь значения.

10. Записываешь следующую строку в my_palette256.txt.

11. Продолжаешь это безобразие до опупения (это значит цвет №255 на местном жаргоне)).

12. Проверяешь созданную таблицу выборочно (не менее, чем в 10 цветах).

13. Бережно сохраняешь my_palette256.txt и копируешь его на три разных носителя как минимум.

14. В своей программе предусматриваешь массив:
Palette256: array[0..255,0..2] of byte;

15. Делаешь чтение файла my_palette256.txt в массив Palette256

16. Делаешь функцию типа такой:
function BestFitColor(r,g,b: integer): byte;
var
m: integer;
begin
m:= MaxInt;
for i:=1 to 255 do begin
d:= Sqr(r - Palette256[i,0]) + Sqr(g - Palette256[i,1]) + Sqr(b - Palette256[i,2]);
if d<m then begin
BestFitColor:=i;
m:= d
end
end
end;

17. Считываешь пиксел своей картинки в переменную Color и выводишь BestFitColor(Color).

18. Важно!! Залезаешь на стол и танцуешь жигу на клаве dance.gif, потом идешь на кухню и доедаешь все, что осталось в холодильнике.

19. Если все хорошо получилось, постишь сюда файл my_palette256.txt в назидание потомкам.

Сообщение отредактировано: Lapp -


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Билли Боб   RGB to indexed color palette   18.09.2011 5:11
Lapp   256-цветных палитр есть много. Обычно, адаптеры м…   18.09.2011 8:31
buy zithromax without a prescrip   Viagro Pills   20.09.2021 14:34
Билли Боб   Палитра обычная svga256. Я хочу вывести 24-битное …   18.09.2011 10:34
Lapp   Палитра обычная svga256. Я хочу вывести 24-битное …   18.09.2011 11:19
-TarasBer-   > Вообще, 256 цветов (8 бит) слишком мало, чтоб…   18.09.2011 14:53
TarasBer   > Палитра обычная svga256. Я хочу вывести 24-би…   18.09.2011 14:58
Билли Боб   Такая палитра   18.09.2011 18:08
Lapp   Протестую. Этого более чем достаточно даже в станд…   19.09.2011 7:18
TarasBer   Мне кажется, это не лучший способ узнать стандартн…   19.09.2011 13:17
Lapp   Мне кажется, это не лучший способ узнать стандартн…   19.09.2011 15:35
TarasBer   > )) у всех свои способы. Можно и описанный мно…   19.09.2011 15:47
Билли Боб   Lapp, похоже ты сегодня рано встал)) но вот 16 пун…   19.09.2011 17:13
buy outdated promethazine codein   Cialis Y Levitra Genericos   6.12.2021 0:45
TarasBer   Нет, просто он живёт не в России. > но вот 16 …   19.09.2011 17:21
Билли Боб   Наверное, мог. Только в этом коде надо переменны…   19.09.2011 17:54
TarasBer   Нет, тип переменных менять не надо. Надо только в …   19.09.2011 17:56
Lapp   Да, этот момент я не учел.. написать Sqr(r - long…   20.09.2011 14:04
what are the most common side ef   Clavulanic   6.12.2021 4:11
Билли Боб   да, вот так лучше.   19.09.2011 17:58


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

 





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