![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Здравствуйте, Форумчане! Возник такой вопрос, связанный с цветом. Задача такова: У меня есть список нескольких разных цветов, допустим их 10. Каждый называется по своему. И есть диалог выбора цвета, после выбора которого программа должна сравнить этот выбранный в диалоге цвет с цветами из того списка цветов, и выдать мне более похожий из этих десяти.
Заранее спасибо за размышления по теме! |
#2
|
||||
|
||||
![]() Код:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
![]() в диалоге выбора цвета дать возможность выбора только одного из твоих 10 цветов.
Пишу программы за еду. __________________ |
#4
|
||||
|
||||
![]() Суть в другом. Я выбираю Совершенно Любой Цвет в диалоге, и потом идет сравнение, в котором находится самый близкий к выбранному из диалога из всех этих 10 цветов.
|
#5
|
||||
|
||||
![]() я понял в чем суть. не ясно одно: зачем выбирать цвет из всей палитры, если потом этот цвет приведется к одному из 10 заранее определеных. намного проще сразу выбрать 1 из 10.
Пишу программы за еду. __________________ |
#6
|
||||
|
||||
![]() Цветов будет не 10, а очень очень много, разные оттенки и насыщенности. Будет как цветовая таблица. Но число этих цветов будет ограничено. А выбранный цвет в диалоге - его надо сравнить с этой цветовой таблицей, и выбрать наиболее нужный.. т.к точно такого же там не будет, нужно искать приближенный, чтобы визуально было похоже
|
#7
|
||||
|
||||
![]() критерием похожести что является? Расположение двух цветов на некоем промежутке? Скажем в вашем случае 1 и 10 непохожи а 3 и 4 похожи?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
||||
|
||||
![]() Меня этот вопрос тоже немного интересует.
А критерий похожести: Розовый похож на красный Оранжевый на желтый Сиреневый на голубой и т.п. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#9
|
|||
|
|||
![]() Для формата RGB можно искать минимум (R1-R2)^2 + (G1-G2)^2 + (B1-B2)^2. Но существуют и другие форматы, например, HSV (яркость, которая в цвете не участвует, и два цветоразностных сигнала).
Добавка. Прошу прощения, написал HSV, а стал описывать YUV, короче, способов кодировки цвета (кадр, изображение) пруд пруди. Последний раз редактировалось AlexSku, 01.09.2011 в 18:45. |
#10
|
||||||||||||
|
||||||||||||
![]() а чем способ MS (GetNearestPaletteIndex) не подходит?
Цитата:
Цитата:
функция: Код:
использование: Код:
Код:
Код:
Код:
Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 01.09.2011 в 11:20. |
#11
|
||||
|
||||
![]() Цитата:
Похоже, речь идёт о конвертации картинки в схему для вышивания бисером: http://www.delphisources.ru/forum/sh...ad.php?t=17909 Лечить и учить умеют все, а вот рассчитать несущую балку... |
#12
|
||||
|
||||
![]() Кстати да, вполне возможно что не только бисером но и вышивание гладью. Там тоже ограниченное количество цветов, но там другая сложность - разные цветовые схемы со своим порядком цветов и нумерацией.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#13
|
||||
|
||||
![]() Огромное спасибо за помощь! Функция GetNearestPaletteIndex помогла
|
#14
|
||||
|
||||
![]() Цитата:
как я понял, тут не получится вбить массив, в котором 500 элементов.. ошибка. что-то в Move. |
#15
|
||||
|
||||
![]() потому что TMaxLogPalette определена в Windows как:
Код:
Код:
Пишу программы за еду. __________________ |