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) |
|
|
|
![]() |
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.
|
|
|
|
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.
|
|
|
|
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ę.
|
|
|
|
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)
|
|
|
|
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ć.
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
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
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 19:27 |