Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwarka koloru w HEX
Kasztan!
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2014

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


Hej

Robię prostą galerię zdjęć. Do uploadu dodałem coś takiego ,że skrypt analizuje obrazek i wyznacza kolor który przeważa na rysunku i wpisuje go razem z nazwą i id obrazka do bazy. Np dla tego obrazka http://bierny.yum.pl/img/kasztan/trt.jpg przeważający kolor to #c8c800. Chciałem teraz zrobić coś takiego ,że np. byłoby 5 obrazków powiedzmy szary, żółty, czerwony, zielony, niebieski i po kliknięciu wyszukiwałby obrazki z przewagą odcienia koloru klikniętego. Tyle ,że wszystkie odcienie konkretnego koloru mają zupełnie różne kody. Nie wiem kompletnie jak to ugryźć. Będę wdzięczny za każdy pomysł (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Zapisanie w bazie danych ponad 16 milionów kolorów w bazie nie wchodzi w rachubę, więc musiałbyś skonwertować HEX do jakiejś realnej liczby i to porównywać. Popatrz na ten artykuł, może znajdziesz zależności łączące poszczególne grupy kolorów.
Go to the top of the page
+Quote Post
Kasztan!
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2014

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


Dzięki, widziałem to. Niby znalazłem zależności, ale on są tylko pomiędzy jaby "czystymi" kolorami, np. mocna czerwień, zieleń itp., nic przejściowego. A takie coś mnie nie urządza, np. jak się wrzuci krajobraz miasta, wyrzuca jakiś szary kolor no i już tego nie znajdzie.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Musisz zawęzić zakres wyszukiwania, a więc pogrupować kolory w mniejsze grupy. Kiedyś widziałem artykuł na ten teraz w necie, ale nie mogę go teraz znaleźć. Jak coś wymyślę, to napiszę.
Go to the top of the page
+Quote Post
Kasztan!
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2014

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


Dzięki (IMG:style_emoticons/default/smile.gif) na razie wymyśliłem coś takiego, żeby ten kolor z hexa przekształcić na RGB. Wg. tego artykułu na wiki, na samym dole, tam występują jakieś zależności. Np. odcienie pomarańczowego, żółtego zawsze R > G > B. Odcienie szarego R = G = B lub różnica wszystkich <20. Na tym może coś wyrzeźbię (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Przekształć kolor zapisany jako HEX-RGB na HSL. Przy wyszukiwaniu jedynie na podstawie koloru wystarczy wykonać dosyć proste porównanie dla składowej Hue (ang. odcień). Nasycenie i światło koloru możesz zignorować.
Go to the top of the page
+Quote Post
Kasztan!
post
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2014

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


Dzięki, to już jest dobry kierunek. Nie chodziło Ci może o HSV? Chociaż to chyba to samo co HSL.
Go to the top of the page
+Quote Post
Crozin
post
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Chodziło mi o HSL, jednak w tym przypadku HSV (znany też jako HSB) również się nada, ponieważ jak napisałem, interesuje Cię jedynie pierwsza składowa, która w obu tych modelach jest identyczna. O różnicach pomiędzy nimi możesz przeczytać na Wiki: http://en.wikipedia.org/wiki/HSL_and_HSV
Go to the top of the page
+Quote Post
Kasztan!
post
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2014

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


Wszystko poszło gładko (IMG:style_emoticons/default/smile.gif) jest podział na 7 kolorów, wpisuje główny kolor słownie do bazy przy nazwie obrazka. Konwertuje RGB na HSV, wyciągam hue i po ifie sprawdzam do którego przedziału należy ten kąt. Dzięki jeszcze raz
Go to the top of the page
+Quote Post

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: 24.12.2025 - 19:27