Сегодня 30 апреля, вторник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7272
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Хабрахабр: Коллективные / Блоги / Захабренные
Хабрахабр: Коллективные / Блоги / Захабренные
Голосов: 10
Адрес блога: http://habrahabr.ru/blog/
Добавлен: 2007-10-24 18:05:40 блограйдером Robin_Bad
 

HTML5 / Как получить RGB, зная CSS Color?

2011-09-06 22:20:22 (читать в оригинале)

Решая свою, так сказать, локальную задачу столкнулся с такой головоломкой: как зная цвет элемента в виде CSS Color (фон или цвет текста), конвертировать этот цвет в компоненты RGB(A)?

То есть, вот имеем мы "#f00" или "#e5f000", или «white», или «rgb(30, 70, 90)», как отсюда получить компоненты RGBA?

В поисках наткнулся на совершенно изящное решение с помощью HTML5 Canvas от Lea Verou. На странице блога Lea вы найдете ссылку на CSS.coloratum — готовое веб-приложение для конвертации цвета в разные форматы.

Мне же нужна была просто функция на JavaScript для конвертации цвета и на основании кода Lea такая функция будет выглядеть вот так:
 function getRGBByCSSColor(color) {
    var ctx = document.createElement("canvas").getContext("2d");
    ctx.fillStyle = color;
    ctx.fillRect(0, 0, 1, 1);
    return [].slice.apply(ctx.getImageData(0, 0, 1, 1).data);
} 

Вот так, всего 4 строчки кода с помощью HTML5 Canvas и встроенной возможности обрабатывать цвета в формате CSS.

p.s. В комментариях правильно подсказывают, что оно слишком прожорливое для частых операций — и прямое решение в лоб с длинным разбором, хотя и страшное, работает существенно быстрее (см. ссылку и пример в комментариях) — в данном случае вопрос в минимальном по объему кода решении.

Тэги: canvas, color, convert, css, html5, rgba

 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»
Изменения рейтинга
Категория «Политика»
Взлеты Топ 5
+256
270
CAPTAIN
+215
287
badvista.org
+189
218
www.blogpr.ru - Лента постов
+184
235
СМИ 2.5
+177
215
Ksanexx
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.