Funkcja przekształcająca na definicję RGB

0

Witam. mam do napisania funkcję która przekształca zapis '0000FF' na reprezentację RGB
np.: "rgb(0,0,255)".

Napisałem coś takiego:

function getRGB(a){
var i, tab = [];
    for(i = 0; i<3; i++){
       tab[i] = parseInt(a, 16);
    }
   
return tab;
}

getRGB('0000FF');

Problem w tym że nie wiem jak podzielić ten łańcuch aby wyświetlało mi
rgb(0,0,255)

zamiast
[255, 255, 255]

1

która przekształca zapis '0000FF' na reprezentację RGB

0x0000FF to tak właściwie przecież jest już zapis koloru w RGB.


Problem w tym że nie wiem jak podzielić ten łańcuch aby wyświetlało mi rgb(0,0,255)

// kopiuj_znaki(string, początek kopiowania, ilość znaków)
r = kopiuj_znaki(kod_hex, 1, 2).na_liczbe(16); // 16 => podstawa systemu, z którego zamieniamy (tutaj heksadecymalny)
g = kopiuj_znaki(kod_hex, 3, 2).na_liczbe(16);
b = kopiuj_znaki(kod_hex, 5, 2).na_liczbe(16);
return "rgb("+r+", "+g+", "+b+")";
0

Nie kapuje. Na bank muszę użyć funkcji parseInt. Twoją metodą wyswietlę sobie tylko podzielone na części RGB. Spróbuj ta moja funkcje. Ona wyswietla 255,255,255 a chciałbym żeby działała tak:

"0000FF"

dostaje 00
zwraca 0

dostaje 00
zwraca 0

dostaje ff
zwraca 255

i po tym wszystkim żeby wyświetlało (0,0,255)

0

Jedyne, co robi ta Twoja funkcja, to trzy razy wpisuje tę samą wartość do tablicy tab, nie ma ona nic wspólnego z tym, co starasz się zrobić.

chciałbym żeby działała tak:

"0000FF"

dostaje 00
zwraca 0

dostaje 00
zwraca 0

dostaje ff
zwraca 255

Spójrz na mój post ponownie, przecież dokładnie to samo napisałem.

3
function getRGB(a){
var red = parseInt(a.substr(0, 2), 16);
var green = parseInt(a.substr(2, 2), 16);
var blue = parseInt(a.substr(4, 2), 16);
return "rgb("+red+","+green+","+blue+")";
}
0

Dokładnie tak poprawiłem, tylko nie doczytałem w mojej super ekstra książce że w javascript jest metoda substring :D Dzięki

usunięcie cytowania całego poprzedniego posta - fp

1 użytkowników online, w tym zalogowanych: 0, gości: 1