Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%)
|
Witam
Czy ktoś może zna sposób na to aby niejako zaokrąglić dowolny kolor zapisany w systemie szesnastkowym, do najbardziej zbliżonego mu koloru ze zdefiniowanej wczesniej palety, np. "web safe"? Chodzi o to żeby np. 5 rodzajów czerwieni (#CC0001,#CC0002,#CC0003,#FF0003,#990005) wynikowo "zaokrąglić" np. do #CC0000. Są klasy i funkcje wyciągające paletę z obrazka, ale te które widziałem wypluwają najróżniejsze kolory, marzy mi się żeby te kolory uprościć żeby były w jakimś z góry zdefiniowanym zbiorze, np. web safe. Może ktoś podpowie jak to ugryźć, albo zna jakieś gotowe rozwiązanie? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Przygotuj tabelę bezpiecznych kolorów.
Potem w pętli musisz sprawdzić dystans między badanym kolorem, a kolorem z tablicy. Dystans liczysz tak: pierw((r2-r1)^2 + (g2-g1)^2 + (b2-b1)^2) Oczywiście najmniejszy dystans to najbliższy kolor. |
|
|
|
kleszczoscisk [PHP] "zaokrąglanie kolorów" 24.03.2014, 19:53:14
kleszczoscisk Dzięki Trueblue. Nie działa mi to według tego jak ... 25.03.2014, 12:00:01
trueblue Na pewno błąd jest w liczeniu różnicy, "^... 25.03.2014, 12:18:10
kleszczoscisk Uff... problem był w sposobie liczenia dystansu, w... 25.03.2014, 13:24:10
trueblue Nie, źle liczysz.
Nie ma znaczenia, która jest wię... 25.03.2014, 13:28:30
kleszczoscisk [PHP] pobierz, plaintext $roznica = sqrt( pow... 25.03.2014, 16:09:51
trueblue To równanie to nic innego jak dystans euklidesowy:... 25.03.2014, 16:16:35
kleszczoscisk Świat jest piękny, jeszcze tyle można się nauczyć ... 25.03.2014, 16:47:17 ![]() ![]() |
|
Aktualny czas: 31.12.2025 - 19:57 |