Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwarka koloru w HEX
Forum PHP.pl > Forum > PHP
Kasztan!
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ł smile.gif
Kshyhoo
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.
Kasztan!
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.
Kshyhoo
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ę.
Kasztan!
Dzięki 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ę wink.gif
Crozin
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ć.
Kasztan!
Dzięki, to już jest dobry kierunek. Nie chodziło Ci może o HSV? Chociaż to chyba to samo co HSL.
Crozin
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
Kasztan!
Wszystko poszło gładko 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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.