Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] "zaokrąglanie kolorów"
kleszczoscisk
post
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?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kleszczoscisk
post
Post #2





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


Uff... problem był w sposobie liczenia dystansu, w zależnoci od tego która wartosc RGB (zadana czy szukana) była większa od tej należało odjąć:
  1. //red
  2. if($row[2]>$color_r) $roznica_r = $row[2]-$color_r;
  3. elseif($row[2]<$color_r) $roznica_r = $color_r-$row[2];
  4. else $roznica_r = 0;
  5. //green
  6. if($row[3]>$color_g) $roznica_g = $row[3]-$color_g;
  7. elseif($row[3]<$color_g) $roznica_g = $color_g-$row[3];
  8. else $roznica_g = 0;
  9. //blue
  10. if($row[4]>$color_b) $roznica_b = $row[4]-$color_b;
  11. elseif($row[4]<$color_b) $roznica_b = $color_b-$row[4];
  12. else $roznica_b = 0;
  13.  
  14. $roznica = ($roznica_r+ $roznica_g + $roznica_b);

$row[2], $row[3], $row[4] - wartosci rgb szukane
$color_r,$color_b,$color_b - rgb zadane

Dzięki za pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 06:44