Преобразование ARGB в формат RGBA

У меня есть 8-битное шестнадцатеричное десятичное число в формате aarrggbb. Мне нужны методы для преобразования этого в формат rrggbbaa и наоборот. Например,

формат ARGB

#FFFF2323

Мне нужен формат RGBA.

#FF2323FF


person Sachila Ranawaka    schedule 26.06.2018    source источник
comment
Итак, у вас есть строка #FFFF2323? ты хочешь '#FFFF2323'.replace(/#(..)(......)/, '#$2$1')   -  person Jaromanda X    schedule 26.06.2018
comment
@JaromandaX Очень элегантное решение. Пожалуйста, ответьте на вопрос :-)   -  person Emil S. Jørgensen    schedule 26.06.2018
comment
куда делся этот ответ без регулярных выражений! это было хорошо   -  person Jaromanda X    schedule 26.06.2018


Ответы (2)


Если вы имеете дело со строкой #FF123456

let x = '#FF123456';
console.log(x.replace(/#(..)(......)/, '#$2$1'));

Если же x является числом, 0xFF123456 -

let x = 0xFF123456
console.log(`#${(x & 0x0FFFFFF).toString(16).padStart(6, '0')}${(x >>> 24).toString(16).padStart(2, '0')}`);

person Jaromanda X    schedule 26.06.2018

Все, что вам нужно сделать, это переместить [1] и [2] в конец

var a = "#AABBCCDD";

var b = "#"+a.slice(3,9)+a[1]+a[2];

person alynurly    schedule 26.06.2018
comment
Мне твой больше нравится :р - person Jaromanda X; 26.06.2018