Преобразование цвета в extjs

Есть ли способ конвертировать цветовые коды MS Access в шестнадцатеричный и наоборот в extjs? например.: - (белый) 16777215 -> #FFFFFF - (синий) 16711680 -> # 0000FF

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
116
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Чистый js:

var color = 5243047;

var b = Math.floor(color / (256 * 256));
var g = Math.floor((color - b * 256 * 256) / 256);
var r = color - b  * 256 * 256 - g * 256;

console.info(r, g, b);

function rgbToHex (r, g, b) {  
    r = r.toString(16);
    g = g.toString(16);
    b = b.toString(16);

    if (r.length == 1) r = '0' + r;
    if (g.length == 1) g = '0' + g;
    if (b.length == 1) b = '0' + b;

    return (r + g + b).toUpperCase();
}

console.info(rgbToHex(r, g, b));

Вы можете проверить здесь: http://www.endprod.com/colors/

Задний ход:

function hexToRgb (hex) {
    var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
    return result ? {
        r: parseInt(result[1], 16),
        g: parseInt(result[2], 16),
        b: parseInt(result[3], 16)
    } : null;
}

const rgbToDec = (r, g, b) => (b * 2 ** 16) + (g * 2 ** 8) + r;

Спасибо, сэр. extjs (sencha fiddle if possible), пожалуйста, если можете.

Hakim Asa 30.10.2018 13:48

К сожалению, у меня нет опыта работы с extjs. Но он должен быть полностью совместим с чистым js. Пожалуйста, проголосуйте за мой ответ. Спасибо.

Eugene Mihaylin 31.10.2018 10:10

Очевидно, цвета MS Access находятся в формате BGR - вы можете преобразовать их в шестнадцатеричный формат и поместить значения в правильном порядке (не забудьте заполнить пропущенный «0» для меньших чисел)

var color = 16711680;
var colorBGR = color.toString(16);
console.info("BGR:", "#" + colorBGR)
var colorRGB = colorBGR.slice(-2) + colorBGR.slice(2,4) + colorBGR.slice(0,2)
console.info("RGB:", "#" + colorRGB)

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

var color = 5243047; // #A70050

var r,g,b;
b = (color & (255 << 16)) >> 16;
g = (color & (255 << 8)) >> 8;
r = color & 255;

console.info(r.toString(16),g.toString(16),b.toString(16))

Другие вопросы по теме