Задача алгоритма: создать цветовую схему из изображения - PullRequest
52 голосов
/ 10 июля 2009

Фон

Итак, я работаю над новой версией веб-приложения. И мы обнаружили, что наши пользователи одержимы ленивостью. Действительно ленивый. На самом деле, чем больше мы делаем для них работы, тем больше они любят обслуживание. Часть существующего приложения требует от пользователя выбора цветовой схемы для использования. Тем не менее, у нас есть изображение (скриншот сайта пользователя), так почему же мы не можем просто насытить их лень и сделать это для них? Ответ: Мы можем, и это будет забавное упражнение по программированию! :)

Проблема

Для данного изображения как создать соответствующую цветовую схему? Другими словами, как выбрать основные цвета X на изображении (где X определяется веб-приложением). Изображение, используемое в нашей конкретной ситуации, представляет собой скриншот веб-сайта пользователя, сделанный в полном разрешении (например, 1280x1024). ( Примечание: Пожалуйста, просто опишите свой алгоритм - нет необходимости размещать реальный псевдокод.)

Бонусные баллы (уличные кредитные баллы, а не фактические SO баллы) для:

  • Описание простого, но эффективного алгоритма. Код - это то, как мы создаем - делайте его простым и красивым.
  • Позволяет пользователю настраивать цветовую схему в соответствии с различными «настроениями», такими как «Красочный», «Яркий», «Приглушенный», «Глубокий» и т. Д. (Как Кулер )
  • Описание метода надежного определения основного текста цвета, используемого на снимке экрана веб-сайта (вероятно, потребуется отдельный, отдельный, алгоритм).

Вдохновение

Существует несколько сайтов, которые выполняют аналогичную функцию. Не стесняйтесь проверить их и спросите себя: «Как бы я продублировал это? Как я мог бы улучшить это?»

Ответы [ 11 ]

0 голосов
/ 10 июля 2009

Усредните оттенок, насыщенность и яркость отдельно, сохраняя значения min / max.

Зафиксируйте целевой оттенок всех цветов на среднем и интерполируйте насыщенность и яркость для точек x между границами. Это должно вернуть схему с цветом, таким же, как на фотографии, но с простым вариантом. Может быть, вы даже получите внешний вид Apple.

Просто надеюсь, что вы не получите 3 оттенка собачьей рвоты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...