Jest to związane z CSS kodów kolorystycznych:Jak przeglądarki obsługują rgb (procent); o dziwnych numerów
Dla hexcode możemy reprezentować 16,777,216 kolorów z # 000000 do #FFFFFF
Według dokumentacji W3C, Poprawne procenty RGB zmieścić się w przedziale od (0,0% do 100,0%) zasadniczo daje 100000000 kombinacji kolorów. (1001^3)
Według specyfikacji:
wartości poza gamy urządzeń powinny zostać przycięty lub odwzorowywane gamy gdy skala jest znana: czerwone, zielone i niebieskie wartości muszą być zmienione tak, aby mieściło się w zakresie obsługiwanym przez urządzenie . Użytkownicy mogą wykonywać odwzorowywanie kolorów o wyższej jakości z jednego zakresu do innego. Dla typowego monitora CRT, którego gama urządzeń jest taka sama jak sRGB, cztery zasady poniżej są równoważne:
Jestem wątpliwe, czy rzeczywiście może sprawić przeglądarek wszystkie te wartości. (ale jeśli tak, to proszę powiedz mi i zignoruj resztę tego posta)
Zakładam, że istnieje pewne odwzorowanie od rgb (procent) do hex. (Ale jeszcze nie jestem pewien jak to działa)
Idealnie chciałabym się dowiedzieć RGB function (procent) -> HEX
Gdybym miał zgadywać będzie to prawdopodobnie jeden z tych 3.
1) okrągłych do najbliższego HEX
2) odgórnie najbliższego HEX
3) podłogi do najbliższego HEX
problemem jest to konieczne bądź dokładny na mapowaniu i nie mam pojęcia, gdzie szukać. Nie ma możliwości, aby moje oczy odróżniały kolor na tym poziomie, ale być może istnieje sprytny sposób przetestowania każdego z nich. Może to być również zależne od przeglądarki. Czy to może być testowane?
EDIT:
Firefox seems to round from empirical testing.
EDIT:
szukam za pośrednictwem kodu źródłowego Firefoksa teraz,
nsColor.h
// A color is a 32 bit unsigned integer with four components: R, G, B
// and A.
typedef PRUint32 nscolor;
Wydaje Fiefox ma miejsce tylko dla 255 wartości dla każdego R, G i B. Podpowiedź, że zaokrąglanie może być odpowiedzią, ale być może coś się robi z kanałem alfa.
Jeśli nie możesz odróżnić "# 000000" od "# 000001", dlaczego potrzebujesz dokładnej formuły? Również okrężnym sposobem testowania byłoby wyświetlenie bloku koloru, kliknięcie ekranu drukowania i użycie narzędzia kroplomierza programu graficznego, aby znaleźć wynikową wartość heksadecymalną. – Toomai
Wydaje mi się, że pracuję nad rodzajem analizatora składni, oczywiście użytkownik końcowy nie powinien być w stanie odróżnić wartości od 000000 do # 000001, ale kod musi być równoważny na wszystkich kontach. Podoba mi się pomysł kroplomierza jako pierwszy krok, dziękuję! – Ray
Jeśli specyfikacja nie określa mapowania, to oczekuję, że będzie zależna od przeglądarki, lub przynajmniej jeśli nie zależy od przeglądarki, to tylko zbieg okoliczności, że tak nie jest. Wyobrażam sobie, że dopóki jesteś konsekwentny, jesteś tak dokładny, jak tylko możesz. Czy sprawdziłeś z firebugem lub innymi takimi w obliczonym stylu, aby zobaczyć, jak to się skończy? – jswolf19