Как создать цветовую палитру (color-picker) с помощью HTML5 Canvas. Выделяем цвет в Photoshop CS6

Подборка цвета – один из важнейших этапов в процессе создания хорошего дизайна.

Чтобы облегчить вам задачу, мы решили составить подборку, состоящую из лучших сервисов для создания цветовых схем. Они помогут сэкономить время, и при этом получить достойный результат.

01. Adobe Colour CC

Компания Adobe переименовала свой проект Kuler в Colour

Вы можете быть знакомы с этим инструментом по его прежнему названию — Adobe Kuler . Однако совсем недавно компания Adobe переименовала одно из своих популярных веб-приложений в Adobe Colour CC .

Он позволяет подбирать, создавать и сохранять различные цветовые схемы, в каждой из которых может присутствовать до пяти цветов. Инструмент доступен как в браузерной, так и в настольной версии. Если вы используете настольную версию, то вы сможете экспортировать цветовую схему прямо в Photoshop , Illustrator и InDesign .

02. Mudcube Colour Sphere


Если вы не уверены по поводу вашей цветовой схемы, то у Mudcude есть собственная галерея готовых ресурсов

Mudcube Colour Sphere – очень удобный миниатюрный ресурс для дизайнеров, который не только предлагает hex-коды выбранных цветов, но и позволяет создавать цветовые схемы для собственных проектов. Также стоит отметить, что в Mudcube имеется собственная галерея готовых ресурсов, которые также можно использовать.

03. Check my Colours


Check my Colours разработан специально для оценки и подборки комбинации фона и основного цвета для всех DOM-элементов . А также для того, чтобы выяснить, достаточно ли элементы гармоничны между собой. Все тесты основаны на алгоритмах, рекомендованных World Wide Web Consortium (W3C ).

04. The Color App


Приложение поможет узнать RGB, HEX, а также HSLA-значения выбранных цветов

iOS-инструмент The Color App позволит легко и просто определять цвета при помощи большой цветовой палитры. Он позволяет узнать RGB , HEX и HSLA-значения цветов, а также создавать собственные цветовые схемы для сайта.

05. Color Hunter


Color Hunter формирует цветовую схему на основе выбранного изображения

Это очень удобный инструмент, особенно если необходимо найти какой-то конкретный цвет. Выберите изображение и загрузите его в Color Hunter . Инструмент создаст цветовую палитру на основе выбранного изображения. Это отличный метод создания собственных цветовых схем.

06. TinEye


Если вам нужно получить конкретный цвет, просто введите HEX-значение в URL

На этом сайте используется база данных, состоящая из 10 миллионов изображений, доступных бесплатно по лицензионному соглашению Creative Commons , которые создатели тщательно отобрали с Flickr . Их можно использовать для генерации соответствующих цветовых схем.

07. Color


Удобное миниатюрное веб-приложение. Наведите курсор мыши на экран, и определите нужный цвет, затем прокрутите немного, чтобы подобрать оттенок. После чего инструмент выдаст все необходимые HEX-коды , которые можно использовать в собственных проектах. Один из самых простых в использовании инструментов.

08. SpyColor.com


Бесплатный генератор цветовых схем, который предоставляет информацию о цвете, а также позволяет конвертировать его в любые схемы (RGB , CMYK и другие ). Здесь доступны различные форматы цветовых схем, включая триадные, монохромные и другие.

09. Designspiration


На Designspiration можно выбрать до пяти оттенков при помощи удобной палитры на всю страницу, которая поможет без труда найти именно те цветовые схемы HTML , которые вы ищете. После этого сайт сгенерирует страницу со всеми изображениями из базы данных, в которых используется похожая цветовая комбинация. Также будут предоставлены HEX-значения , которые можно использовать в собственных проектах. А изображения можно сохранять в коллекциях на сайте.

10. ColorExplorer


Один из самых продуманных веб-инструментов, который предлагает множество функций, связанных с дизайном, настройкой и аналитикой цветовых схем. Здесь представлены инструменты, которые помогут определить WCAG-валидность цветовых схем , а также сгенерировать собственные цветовые палитры.

11. Hex Color Scheme Generator


Небольшой удобный инструмент для генерирования комбинации цветов на основе одного выбранного оттенка. Вставьте Hex-значение цвета, а инструмент предоставит набор подходящих цветов, которые можно будет использовать вместе с основным.

12. COLOURlovers

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

13. Color Scheme Designer


Этот онлайн-инструмент предлагает интересные способы генерирования цветовых схем, позволяя настраивать их яркость и регулировать контраст. Здесь можно создать несколько популярных математических моделей цветовых схем, включая монохромную.

14. COPASO


Один из инструментов с сайта COLOURlovers . Но COPASO достоин отдельного внимания, так как представляет собой невероятное решение «все в одном », и позволяет легко генерировать готовые цветовые схемы для сайта. Здесь представлено множество инструментов для подбора цвета, и все они размещаются в удобном и простом интерфейсе. Кроме этого к палитрам можно добавлять заметки, загружать изображения и т.п.

15. Colourmod

Colourmod представляет собой программное обеспечение, которое позволяет выбирать отдельные цвета из области виджетов, независимо от того, используете ли вы Mac или Konfabulator на Windows . Это не совсем простой инструмент для работы с цветовыми палитрами, однако он поможет быстро и просто определять цвета без необходимости загружать тяжеловесные программы.

16. ColorZilla


ColorZilla доступен как для Chrome, так и для Firefox

Этот проект начинался как плагин для Firefox , однако сегодня он также доступен и для Google Chrome . ColorZilla представляет собой расширение, которое включает в себя несколько инструментов, предназначенных для работы с цветом, среди которых палитра, генератор css-градиентов и пипетка.

17. Colormunki


Удобный онлайн-инструмент для подбора цветовых схем от создателей Colormunki . С его помощью можно без труда создавать привлекательные цветовые палитры из образцов на основе Pantone с использованием нескольких методик.

18. colr.org


Colr.org позволяет установить диапазон цветов любого изображения

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

19. ColourGrab

Этот удобный инструмент создает цветовые палитры из любого изображения. Вставьте адрес изображения, которое хотите проанализировать, и сервис автоматически сгенерирует трехмерный график с информацией по использованным цветам. Хотя это приложение не совсем подходит для подбора цветовой схемы для сайта, но с его помощью можно изучить изображения и их цветовые характеристики.

20. ColorBlender


ColorBlender генерирует палитру из пяти сочетающихся цветов

Один из простейших инструментов, который позволяет настраивать цветность и в режиме реального времени получать пять сочетающихся между собой цветов. Сгенерированную палитру можно скачать в Photoshop или Illustrator в виде EPS-файла .

21. GrayBit


GrayBit позволяет анализировать сайты, чтобы понять, как бы они выглядели в градации серого

Этот инструмент поможет увидеть, как ваш сайт смотрится в серых тонах. Отличный сервис, который позволит выявить проблемные по контрасту места.

22. COLRD


Инструмент, который можно использовать в качестве источника вдохновения или для обмена цветовыми схемами. Конечно, этот ресурс не поможет с генерированием схем, но его обязательно следует взять на заметку.

23. Shutterstock Spectrum


Изображения можно фильтровать по цветовому балансу и яркости

Иногда проверить будет ли цветовая схема сочетаться легче всего путем просмотра стоковых картинок. Практически все основные стоковые ресурсы предлагают подобные инструменты, однако Shutterstock Spectrum имеет очень удобный интерфейс. После использования слайдера для определения цвета вы сможете указать ключевые слова, которые позволят определить тему снимков. Кроме этого можно отфильтровать изображения по цветовому балансу и яркости.

24. Stripe Generator 2.0


Может показаться, что этот инструмент уже давно устарел. Однако вы все равно сможете эффективно использовать его для создания готовых цветовых схем для сайта и привлекательных паттернов.

25. Colors on the Web


Colors on the Web принимает отдельные цвета в HEX или RGB , и выдает цветовые схемы, основанные на различных математических вычислениях. Подобный механизм используется и в Kuler . Этот веб-инструмент не будет работать на iPad или iPhone из-за использования технологии Flash .

Даже небольшая цветокоррекция может существенно улучшить общее впечатление от фотографии. В этой статье я расскажу один из способов применения команды Color Balance «Цветовой баланс» для проведения легкой цветовой коррекции фото.

Для примера я взял студийное фото, которое уже прошло обработку и готово для передачи заказчику. Однако есть один нюанс который можно поправить (исправлять здесь ничего не нужно), а именно – провести небольшую цветокоррекция освещения так сказать сделать финальный «мазок».

Провести коррекцию цвета можно большим количеством инструментов способов и приемов для полного описания процесса нужно целую книгу написать. Я же ограничусь одним, но эффективным приёмом, основанным на использовании корректирующего слоя Color Balance (Цветовой баланс ).

Применение команды Color Balance (цветовой баланс) для цветокорекции

Использовать Color Balance можно двумя способами – непосредственно командой доступной по нажатию комбинации клавиш (Ctrl+B), деструктивный метод применения, оправданный только тогда, когда имеется четкое представление о настройках команды и не предполагающий их изменения в дальнейшем.

Второй способ дающий возможность полёта фантазии и полный контроль за настройками на любом практически этапе работы над фото – использование корректирующего слоя. Я использую именно его. Создам корр. слой Color Balance (Цветовой баланс) кликнув иконку весов на панели Adjustments (Коррекция)

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

По созданию корр. слоя откроется панель его параметров, снабженная различными ползунками и примочками, прежде чем дёргать за них скажу пару слов о принципах работы и «возможных последствиях».

Определение тона и цвета

Начну из далека: Не вдаваясь в подробности цифровое изображение можно представить, как набор пикселей определённой яркости и цвета.

Определение тона

Значения яркости от 0 самый темный до 255 самый светлый по каждому из трех каналов (модель RGB). Шкалу яркостей можно подставить в виде градиентной линейки от черного к белому от 0 до 765 — максимальная яркость по трем каналам, значение можно округлить до 750 беды в этом не будет.

Наиболее полное представление о вычислении значений для тона цвета дает модель НSВ (Hue, Saturation, Brightness - тон, насыщенность, яркость) почитать о которой . Представленная здесь линейка ничто иное как часть этой модели (Brightness).

Условно линейку можно разделить на три диапазона:

  • тени Shadows от 0 до 250;
  • полутона Midtones от 250 до 500;
  • света Highlights от 500 до 750 соответственно.

Промеряя изображение при помощи пипетки ориентируясь на палитру Info, вызов палитры F8, мы получаем значения цвета RGB в месте, над которым находится курсор, суммируя эти значения получаем яркость участка, мысленно применяя линейку можем представить в каком диапазоне тонов он находится.

Например, пипетка, установленная над лбом модели, дает значения R – 237, G – 212, B – 202 в сумме 651, следовательно, эта область относится к диапазону светов Highlights. Теперь понимая, как узнать в каком тоновом диапазоне находится тот ли иной участок изображения можно понять куда коррекция окажет наибольшее воздействие.

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

Определение цвета

Непосредственно к моему примеру определение цвета не первоочередная задача, но «раз пошла такая пьянка режь последний огурец».

Поднимемся по линейке на значение, вычисленное для тонового диапазона выйдем на цветовой круг находящийся на этом уровне яркости, кому непонятно прочтите статью про HSB ссылка выше.

В центре круга минимальное значение цветовой насыщенности двигаясь к краю она постепенно возрастает пока не достигнет своего максимума 255 (край круга). Вычисление начинается с наибольшего значения в примере это Красный 237 откладываю это значение по соответствующей оси. Следующее значение 212 для зелёного откладываю параллельно соответствующей оси, как нетрудно догадаться для синего 202 параллельно его оси. В результате получаю ненасыщенный оранжевый цвет, что соответствует действительности.

Вернусь к работе: Посмотрите на оси цветов выходящие из цента круга. Они ничего вам не напоминают, к примеру ползунки коррекции цветов на панели параметров Color Balance? Они работают так же как если бы мы двигались по осям на цветовом круге. Нельзя добавить какой-либо цвет, не уменьшив при этом количества противоположного (комплементарного) ему.

Работа с Color Balance (Цветовым балансом)

Я хочу «оживить» скучный студийный фон добавив в него немного сине зелёного оттенка, руководствуясь определением тона смело могу предположить, что интересующий меня объект находится в средних тонах. Выберу соответствующий пункт в списке Ton: Midtones добавлю синего +100 зелёного +46, и циана -14. Галочка Preserve Luminosity должно быть включена это позволит сохранить яркость исходного пикселя и воздействовать только на его цвет.

Новые цветовые оттенки полечил не только фон, но и другие участки картинки, лежащие с ним в одном диапазоне. Я ничего не имею против этого оттенка на волосах модели, но на её коже это выглядит не совсем «кошерно». Удалить воздействие коррекции можно при помощи маски прикрыв ею участки картинки.

Создание применение маски на основе канала

Маску можно сделать используя команду цветовой диапазон из меню Выделения о корой я писал в , а можно сделать маску на основе каналов изображения. Чем сейчас займусь.

Перехожу в палитру каналов Channels, лицо модели самое светлое в красном канале, сделаю его копию перетащив миниатюру канала на иконку листочка внизу палитры.

Заготовка для маски и так выглядит неплохо, но уточнить её добавив контраста. Воспользуюсь для этого командой (Ctrl+L) сдвинув ползунок теней чуть ближе к центру.

Теперь создам на основе этой заготовки выделение, кликнув по её миниатюре с зажатой клавишей Alt. Вернусь в слои встану на маску корр. слоя применю команду инвертирования Ctrl+I.

Снимаю выделение Ctrl+D. Маска получилась не полностью чёрной, значит коррекция частично пройдёт на лицо модели.

Поправлю это добавив теплых тонов на него. Создам новый корр. слой Color Balance в света (Ton: Highlights) добавлю красного (Red) +3 и жёлтого (Yellow) -2 в средних тонах света (Ton: Midtones) добавлю пурпурного (Magenta) – 4.

Оставлю коррекцию только на коже модели скрыв её с остальных участков при помощи маски: Скопирую её с предыдущего слоя. Зажав клавиши Ctrl+Alt и перетащив пиктограмму на этот слой.

Инвертирую маску Ctrl+I чтобы скрыть воздействие со всей картинки кроме кожи модели.

Цветокоррекция теней и бликов

На следующим этапе работы по цветокорекции фото хочу немного изменить цвет бликов на лице модели, применю для этого такой приём. Создам новый пустой слой, инструментом пипетка возьму пробу цвета с блика на лбу. Значение размера цветопробы на панели параметров пипетки поставлю 11 на 11 среднее (11 by 11 Average)

Выбранным цветом залью слой, комбинация Alt+Delete тут же инвертирую его чтобы получить противоположный выбранному цвет Ctrl+I режим наложения для этого слоя изменю на Color (Цветность).

Для сокрытия воздействия вместо маски применю следующий подход: Двойным кликом вызову диалог стиля слоя Layer Style в блоке Blend if (Смешивать если) в параметрах воздействия на нижележащий слой Underlying Layer зажав клавишу Alt расщиплю ползунок теней и установлю его половинки так чтобы ограничить воздействие в диапазоне яркостей от 133 до 245 примерно в этом диапазоне лежат интересующий меня блики. Удобно визуально ориентироваться на изменения картинки цифры указы здесь для «общего развития».

При необходимости можно снизить значение непрозрачности слоя, я установил 50%. Теперь немного снижу воздействие цветокорекции на средние тона воспользуюсь таким же приёмом. Создам новый слой беру пробу с фона заливаю им слой инвертирую его вызываю Layer Style в блоке Blend if на Underlying Layer расщепляю и развожу ползунок цветов параметры вы видите на картинке

Снижаю значение непрозрачности пока не получу нужного результата. Финальное изображение как можно заменить отличается от исходного как мне кажется в лучшую сторону.

В этом уроке мы будем учиться делать фотографию с частичной окраской. Такая методика помогает сконцентрировать внимание на отдельном участке, передать настроение работы и делает изображения яркими и неотразимыми. А выделять цвет мы будем при помощи Photoshop CS6.

У нас есть изображение с красной будкой и нам нужно выделить будку. Как сделать это быстро и качественно? Есть несколько способов, но сегодня мы будем использовать функцию Color Range , которая находится в меню «Выделение» (Select) .

Эта функция позволяет выбрать конкретные цвета вашего изображения, либо путем выбора основного цвета из раскрывающегося списка, либо путем отбора проб цвета по выбору. Но в большинстве случаев просто выбрать какой-то цвет из выпадающего списка недостаточно. Как видите на изображении ниже, если просто выбрать красные цвета, наша будка не будет полностью белой, а выделение будет не точным.

Кроме того, если в списке «Демонстрация выделения» (Selection Preview) внизу выбрать Black Matte наше выделение немного поблекнет.

Поэтому мы будем использовать другой метод — выбор цвета (Sampled Colors) . Это позволит выбрать несколько оттенков основного цвета. Нажимайте на телефонную будку, и изменяйте значение Fuzziness . Чем выше будет значение, тем больше выделение будет включать в себя оттенков.


Удерживайте клавишу Shift и нажимайте на оттенки красного на будке, чтобы добавить их к выделению.

Когда вы выбираете несколько оттенков красного, вы можете заметить, что область за пределами нашей будки также выделяется. Есть несколько способов избежать этого. Во-первых, как сказано выше, Fuzzines может помочь увеличить или уменьшить количество подобных тонах, которые в настоящее время включены в выделение.

Вы также можете активировать функцию Localized Color Clusters и изменить значение Range Slider . Это может помочь сфокусировать ваш выбор вокруг области с выбранными цветами. Значение диапазона будет уменьшать выделение вокруг объекта.

Даже после того, как вы настроили эти ползунки, вы можете вернуться назад и удерживая Shift + щелкнуть на области, которые, возможно, вы забыли добавить. Ваш результат не будет 100% совершенен, но мы поработает над этим позже.

Когда вас полностью устроит результат, нажмите «OK» и инвертируйте выделение.

Лучше всего добавить корректирующий слой (Adjustment Layer) , чтобы иметь возможность вернуться к исходному результату.

Это также дает нам возможность настроить эффект, если необходимо. К корректирующему слою можно добавить маску слоя, и удалить или добавить красные цвета при помощи белой и черной кисти.

Все, наше изображение готово! Надеемся, этот урок вам пригодился, хотелось бы увидеть ваши результаты,

Перевод: Дежурка


Творческого человека даже широчайший ассортимент красок не порадует – обязательно найдется оттенок, который производитель упустил из виду, этакий «нежный кремовый с апельсиновым отливом». Спасти положение может только колеровка краски своими руками!

Колер и цвета – одно и то же?

Начать, пожалуй, нужно со значения слова «колер», ведь в разных сферах у этого слова и значения разные. Например, в разговорном языке под колером понимают цвет, окраску, оттенок, тогда как профессионалы малярного дела используют этот термин для обозначения готового для применения красочного состава. В нашем случае, говоря о получении нужного оттенка своими руками, мы на время прочтения статьи и станем профессионалами, и выражаться будет соответственно!

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

Однако, выбирая нужный колер в строительном магазине, где предлагается такая услуга, необходимо учесть некоторые моменты, которые могут обернуться существенным недостатком метода и вызовут ваше справедливое недовольство. Во-первых, нужно учесть, какое освещение в помещении, где вы выбираете оттенок. При разном освещении один и тот же маркер будет давать совершенно разные оттенки. В искусственном освещении много желтых лучей, и на его фоне дневной свет покажется голубым. Можете себе представить, как легко запутать наше восприятие цветов.

При искусственном освещении холодные цвета (синие, фиолетовые, зеленые) приобретают более темные оттенки, тогда как теплые красный и оранжевый светлеют.

Электрическое освещение меняет желто-голубую палитру на желтую или зеленоватую, в оранжево-фиолетовой краске фиолетовый может вообще пропасть, а красный начнет отдавать слегка пурпурным. Очень яркий свет способен визуально обесцветить оттенки, то же может происходить и в сумерках – синие тона станут светлее, красные же наоборот потемнеют. Чем дальше расстояние, тем светлее будет казаться поверхность, разве что синий и фиолетовый потемнеют.

Второй нюанс – на маленьком участке оттенок выглядит иначе, чем на большой площади, особенно в вертикальной плоскости . Сложно учесть все эти моменты без экспериментов на месте. К тому же, даже компьютерные каталоги не всегда способны повторить тот или иной нужный нам оттенок, например, если мы решили в дизайне интерьера «плясать» от определенной детали или предмета мебели.

Колеровка краски своими руками – с чего начать?

Как уже писалось выше, недостаток ручной колеровки красок заключается в том, что повторить нужный оттенок второй раз у вас вряд ли получится. Поэтому перед колеровкой проведите тщательный расчет с целью выяснения точного объема краски. У каждой краски свой расход, к счастью, производители в обязательном порядке указывают эти данные на упаковке. Наша задача – выяснить площадь окрашивания и умножить полученную цифру на средний расход краски. Затем к полученному значению прибавляем еще 10 % – на тот случай, если мы превысим средний расход. Уж пусть лучше останется запасная краска, чем придется угадывать с оттенком.

Важно делать колеровку в одной емкости. Даже если вы точно рассчитали количество колера, существует вероятность, что в двух разных емкостях у вас получится разный оттенок. Поэтому не рискуйте, и если объем очень большой, а нужной посудины у вас нет – лучше обратиться к специалистам.

Как смешивать цвета краски – выбор основы и колера

Итак, для колеровки вам понадобится белая основа и сам колер – краситель, способный в разных пропорциях с краской давать разный оттенок. Немаловажно, чтобы производитель обоих компонентов был один и тот же – секреты производства у каждого свои, и технологии разные. Но и до фанатизма доходить не нужно – если вам понравился краситель определенной фирмы, не обязательно менять купленную ранее белую краску.

Если надпись на емкости с белой основой гласит, что это краска – значит, использовать ее нужно сугубо для потолка, если краска предназначена для стен – красить ею нужно лишь вертикальные поверхности. И дело отнюдь не в уловках маркетологов – производители рассчитывают для разных поверхностей такие параметры, как износостойкость, маркость, эластичность . Разве на потолке они будут играть такое же значение, как на стенах, которые по десять раз на дню будут пачкаться неуемными детьми или животными?

Обычно вместе с колером идет небольшой каталог возможных оттенков с подробными инструкциями – в каком количестве добавлять краситель для получения нужного оттенка. Для уверенности в результате используйте для перемешивания компонентов миксер или дрель на малых оборотах со специальной насадкой. При должном усердии нужный результат может дать и ручное перемешивание, однако это дополнительный риск.

Если вы намерены создать нужный оттенок для жилых помещений, учтите рекомендации по выбору цвета. Вполне возможно, что вначале вам понравятся яркие цвета и оттенки, но они быстро утомят вас и начнут раздражать. Для старайтесь подбирать неинтенсивные, спокойные светлые тона желтого, зеленого, оранжевого. Нельзя и зацикливаться на одном оттенке – чтобы помещение не было скучным, разные стены можно разукрасить разными колерами.

Колеровка на практике – не спеша и с расстановкой!

Для колеровки вам понадобится миксер (дрель с насадкой), небольшая емкость для пробника (100-200 мл) и емкость для большого объема, белая основа и колер.

Как смешивать цвета краски - пошаговая схемаШаг 1: Делаем пробник

Перед тем, как смешивать цвета краски на основной объем, поэкспериментируем с небольшим количеством материала – сделаем пробник. Иначе есть шанс испортить весь объем! Отливаем в небольшую емкость 100 мл краски и добавляем несколько капель пигмента. В таких случаях удобно пользоваться баночками с узким горлышком, если же колер расфасован в неудобную посуду, воспользуйтесь обычный шприцом – наберите в него пигмент и аккуратно выдавливайте, чтобы получались капли. Для старта добавляем 2-3 капли, тщательно перемешиваем, и доводим до нужного оттенка, капая в основу по одной капле. Когда нужный оттенок получен, зафиксируйте количество капель на бумаге.

Создание HTML5 «холстовых» (от англ. “сanvas”) приложений, является новым трендом, с их помощью мы даже можем создавать игры, так как они поддерживаются во всех ведущих браузерах (от настольных до мобильных) и это делает их более эффективным решением, нежели использование умираещего Flash.

В этом уроке мы будем использовать canvas элемент для создания простой цветовой палитры или так называемого колор-пикера, которая не требует Flash. Все, что вам нужно, это текстовый редактор и браузер. Обратите внимание, что если вы собираетесь протестировать демо локально, вам нужно использовать любой браузер, кроме Chrome; модуль безопасности в Chrome означает, что скрипт будет работать только в режиме онлайн.

В этом примере, код HTML будет очень минимальным - все, что нам нужно для работы цветовой палитры - это канвас элемент и место для того чтобы показать выбранный цвет в RGB и HEX форматах. Вот, что нам нужно:

HEX: RGB:

Так как мы будем использовать фоновое изображение с цветовой палитрой, мы сделали ширину и высоту канваса соответствующею размерам изображения - 600×440 пикселей. Мы также должны добавить jQuery на нашу страницу, так как мы будем использовать jQuery код.

JavaScript

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

Var canvas = document.getElementById("canvas_picker").getContext("2d");

Теперь, когда мы получили канвас элемент и его контент, мы можем установить изображение в качестве фона канваса. Для этого нам нужно создать изображение и сделать его источником URL картинки. После того как изображение будет загружено, вам нужно перетащить его в канвас:

Var img = new Image(); img.src = "images/colorpicker.jpg"; $(img).load(function(){ canvas.drawImage(img,0,0); });

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

$("#canvas_picker").click(function(event){ var x = event.pageX - this.offsetLeft; var y = event.pageY - this.offsetTop;

С помощью этих двух строк кода, мы сможем увидеть, где кликал пользователь. Что мы делаем, это получаем все координаты, где пользователь кликал и потом с этого вычитаем смещение канваса. Такое действие покажет нам, где пользователь кликал по сравнению с положением на канвасе.

Нашим следующим шагом будет получение RGB значений, где кликает пользователь. Для этого нам нужно использовать функцию getImageData и прикрепить Х и У положение клика:

Var imgData = canvas.getImageData(x, y, 1, 1).data; var R = imgData; var G = imgData; var B = imgData;

Теперь у нас есть значения, которые хранятся в R, G и B переменных, но нам нужно отобразить эту информацию для пользователю так, чтобы они могли легко её прочитать. Поэтому нам нужно создать переменную RGB, которая будет держать эти три значения, разделенных запятыми, а затем представить их, как значения одного из наших полей ввода:

Var rgb = R + "," + G + "," + B; $("#rgb input").val(rgb); });

Если протестировать, то у вас уже есть полнофункциональная цветовая палитра, которая извлекает значение RGB при любом нажатии. Но сделать её немного получше, мы можем добавить функцию из Javascripter, которая преобразует RGB значения в HEX значения. Вот эта функция:

Function rgbToHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B)} function toHex(n) { n = parseInt(n,10); if (isNaN(n)) return "00"; n = Math.max(0,Math.min(n,255));return "0123456789ABCDEF".charAt((n-n%16)/16) + "0123456789ABCDEF".charAt(n%16); }

Теперь, когда мы получили эту функцию все, что нужно сделать для того, чтобы представить HEX значения, это выполнить функцию с нашим RBG значением, а затем установить значение ввода на HEX цвета с # до и с функцией уже на месте. Это довольно просто:

// after declaring the RGB variable var hex = rgbToHex(R,G,B); // after setting the RGB value $("#hex input").val("#" + hex);

Полностью готовый код

Colorpicker demo HEX: RGB: var canvas = document.getElementById("canvas_picker").getContext("2d"); // create an image object and get it’s source var img = new Image(); img.src = "images/colorpicker.jpg"; // copy the image to the canvas $(img).load(function(){ canvas.drawImage(img,0,0); }); // //www.javascripter.net/faq/rgbtohex.htm function rgbToHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B)} function toHex(n) { n = parseInt(n,10); if (isNaN(n)) return "00"; n = Math.max(0,Math.min(n,255)); return "0123456789ABCDEF".charAt((n-n%16)/16) + "0123456789ABCDEF".charAt(n%16); } $("#canvas_picker").click(function(event){ // getting user coordinates var x = event.pageX - this.offsetLeft; var y = event.pageY - this.offsetTop; // getting image data and RGB values var img_data = canvas.getImageData(x, y, 1, 1).data; var R = img_data; var G = img_data; var B = img_data; var rgb = R + "," + G + "," + B; // convert RGB to HEX var hex = rgbToHex(R,G,B); // making the color the value of the input $("#rgb input").val(rgb); $("#hex input").val("#" + hex); });