Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.10.2006, 06:24
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 1  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
По умолчанию Критерий "похожести" цветов в цифровом формате

Дано:
массив colours с цветами (0x55ff55, 0xaadd55, 0x884545, 0xFFFF00 .... );
любой цвет myColour (например 0x00аа00)
Найти:
цвет в массива colours самый близкий (визуально наиболее похожий) на цвет myColour.

Условие "самый близкий" я вижу как наибольшую вероятность не различить эти цвета глазом.
Разбиение uint на значения каналов и сравнение этих значений наводят меня на печальные мысли
Что же взять за критерий "похожести" цветов в цифровом формате?
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©


Последний раз редактировалось miramax; 28.10.2006 в 06:27.
Старый 28.10.2006, 06:30
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
А почему на печальные мысли наводит?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.10.2006, 06:37
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 3  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Например цвет 888888 визуально ближе к aaaaaa чем к aa88aa, а если сравнивать каналы то получим что цвет 888888 ближе к aa88aa... как их правильно сравнить-то?
Код:
graphics.lineStyle(0, 0x000000, 0)
graphics.beginFill(0x888888)
graphics.drawRect(0, 0, 300, 50)
graphics.beginFill(0xaaaaaa)
graphics.drawRect(0, 50, 300, 50)
graphics.beginFill(0xaa88aa)
graphics.drawRect(0, 100, 300, 50)
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©


Последний раз редактировалось miramax; 28.10.2006 в 08:38.
Старый 28.10.2006, 06:54
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Для начала переводить цвета в HSB, так как эта модель самая близкая к восприятию человека.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.10.2006, 06:59
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 5  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Отлично, сэнкс за наводку.
Вот нашёл, __etc написал полезную штуку на эту тему:
http://dev.etcs.ru/blog/as2/ru/etcs/draw/colorobject/
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 28.10.2006, 08:25
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
выделить канал можно следующим способом
Код:
function RGB(color:Number) {
	var R:Number = (color >> 16)
	var G:Number = (color >> 8) & 0xFF;
	var B:Number = (color >> 0) & 0xFF;
	trace("Red   " + R.toString(16));
	trace("Green " + G.toString(16));
	trace("Blue  " + B.toString(16));
}
RGB(0xAB12CF);

Старый 28.10.2006, 08:39
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 7  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Цитата:
Сообщение от udaaff
выделить канал можно следующим способом
Выделить канал не проблема,
Я не понял твоей коснтрукции. Делаю вот так
Код:
var color:Number = 0xe4dddf;
R = Number('0x'+color.toString(16).substr(0, 2))
G = Number('0x'+color.toString(16).substr(2, 2))
B = Number('0x'+color.toString(16).substr(4, 2))
но с каналами всё равно не подходит вариант, нужно сравнивать параметры HSB. Результаты более правдоподобные
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©


Последний раз редактировалось miramax; 28.10.2006 в 08:48.
Старый 28.10.2006, 09:23
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от miramax
Выделить канал не проблема,
Я не понял твоей коснтрукции.
На каждый канал отводится по 8 бит(на цвет RGB-24)
R.делаем сдвиг на 16(биты которые выходят за рамки убиваются), остается красный
G.--сдвиг на 8 (восемь убиваются)
----оставлям побитовым "&" нужные 8
B.оставляем "&" нужные 8

Старый 28.10.2006, 09:40
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
2 miramax: Твоя функция в 25 раз медленнее работает и самое главное в некоторых случаев она будет работать не правильно (например если был задан цвет 0x00FFFF или 0x055555).
2 udaaff: я не понял смысла операции color >> 0
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 29.10.2006, 02:17
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 10  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от iNils
2 udaaff: я не понял смысла операции color >> 0
в ней столько же смысла , сколько и в A+0

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


Часовой пояс GMT +4, время: 12:55.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.