логика цветовой дисперсии - PullRequest
       12

логика цветовой дисперсии

1 голос
/ 21 сентября 2011

http://dribbble.com/colors/1a15a1?percent=5&variance=50

Я понимаю, что ползунок минимального цвета - вы посчитаете цвет каждого пикселя, а затем создадите соотношение для определенного цвета на основе общего количества пикселей изображения (10 синих: 100итого) = 10% синего.

Но какова логика ползунка цветовой дисперсии?Глядя на значения RGB этих цветов http://en.wikipedia.org/wiki/Web_colors#X11_color_names, некоторые закономерности очевидны, но, представив таблицу sql, полную изображений и данных их пикселей, у кого-нибудь есть идея о том, как рассчитать дисперсию?

1 Ответ

2 голосов
/ 21 сентября 2011

Я тоже думаю, что вы подходите для минимума цвета. Цветовая дисперсия тоже проста. Если вы выберете небольшую дисперсию, вы получите изображения с небольшим количеством используемых цветов. По логике 0% дисперсия должна приводить к изображению только одного цвета.

Я не думаю, что вам нужно хранить пиксели вообще, логически для хранения нового изображения это выглядит так:

  1. Прочитать файл изображения
  2. Найдите, сколько в нем разных цветов
  3. Хранить путь к изображению и количество разных цветов на нем.

Тогда при получении изображения изображение будет выглядеть так:

  1. Спросите пользователя, какое отклонение ему нравится
  2. Допустим, дисперсия = 60%
  3. Считать различное максимальное количество цветов для изображения
  4. MaxColors = 100% (скажем, макс. = 18 цветов на изображение)
  5. Превратить 60% в целое число 18 = 100% х = 60% тогда 18 * 60 = 100 * х, затем 100 * х = 1080, затем х = 10,8
  6. Сделайте 10,8 раунда, чтобы он стал х = 11
  7. Извлечение из базы данных всех изображений, имеющих 11 или более цветов
  8. Показать эти изображения как результат

Так что вообще не нужно хранить ни одного пикселя, только одно целое число, которое указывает, сколько цветов состоит из изображения.

...