Witam
Potrzebuję pomocy w napisaniu (lub wskazaniu gotowego rozwiązania, bo podejrzewam, że takie może istnieć). Potrzebny jest kod, który mając podany sześcioznakowy ciąg, który oznacza numer koloru w postaci RRGGBB, gdzie RR,GG,BB to liczby szesnastkowe z przedziału 00-FF, wyświetla trzy liczby dziesiętne: $red, $green, $blue, które są liczbami dziesiętnymi z przedziału 0-255. Ewetnualnie może być funkcja odwrotna, która mając na wejściu trzy liczby dziesiętne (0-255), wyświetla odpowiednik RRGGBB.
Czyli np. gdy $kolor = 'FFCC00';
To funkcja wyrzuci: $red == 255; $green == 204; $blue == 0;
Lub na odwrót. Nie ma znaczenia, w którą stronę będzie działać funkcja, bo dane w bazie mogę przechowywać w dowolny sposób. Gdyby to nie robiło różnicy, to wolałbym zamianę RRGGBB -> $red,$green,$blue, bo wtedy w bazie przechowywałbym tylko jedną zmienną zamiast trzech.
Zamiana potrzebna mi jest do obróbki kolorów (wersja RRGGBB do wyświetlania w htmlu, a wersja $red,$green,$blue do zabawy funkcjami graficznymi (imagesetpixel(), imagecolorallocate(), itp).
W zasadzie to wiedziałbym jak taką funkcję napisać, ale problemem jest to, że chciałbym, żeby była bardzo szybka, gdyż będzie bardzo często używana. I wiem, że moje rozwiązanie byłoby baaardzo mało wydajne i obciążałoby procek o wiele bardziej, niż jest to potrzebne. Dlatego chciałbym, żeby pomógł ktoś bardziej obcykany.
Hmmm... a może nawet istnieje gotowiec?
Z góry dziękuję za pomoc.