Zaintrygowało mnie to od dłuższego czasu.
Czy ktoś zna algorytm, którego używa Windows 7 Aero do określania koloru, który ma być podświetleniem aktywowanym na gorąco na przyciskach paska zadań w aktualnie uruchomionych aplikacjach?
Jest to zdecydowanie oparte na ikonie aplikacji, ale nie widzę konkretnego wzoru, z którego pochodzi wartość koloru.
Wydaje się, że nie jest to żaden z poniższych:
- Średnia wartość koloru z całej ikony, w przeciwnym razie
cały czasstałbyś się brązowy z wielobarwnymi ikonami, takimi jak Chrome. - Kolor najczęściej używany w obrazie, w przeciwnym razie uzyskasz żółty kolor dla ikony SQL Server Management Studio (6. od lewej). Ikona Chrome używała w równym stopniu czerwonego, zielonego i żółtego.
- Kolor znajduje się na niektórych współrzędnych piksela w ikonie, ponieważ Chrome jest czerwony - co wskazuje na górę ikony - a Notepad ++ (drugi od prawej) jest zielony - co wskazuje na dół ikony.
Zadałem to pytanie na stronie ux.stackoverflow.com i zostało ono zamknięte jako nie na temat, ale ktoś odpowiedział następująco:
Jak opisał Raymond Chen w tym artykule na blogu MSDN :
Niektórzy pytają, jak to się robi. To naprawdę nic specjalnego. Kod po prostu szuka dominującego koloru na ikonie. (A ponieważ projektanci wizualni są trupami dla tego rodzaju rzeczy, czarny, biały i odcienie szarości nie są uważane za „kolory” do celów tego obliczenia.)
Jednak nie byłem zadowolony z tej odpowiedzi, ponieważ nie wyjaśnia ona, w jaki sposób obliczany jest „dominujący” kolor. Z pewnością na ikonie SQL Management Studio dominującym kolorem, przynajmniej dla mnie, jest żółty. Najważniejsze jest jednak zielone. Chcę wiedzieć, w szczególności, jaki jest algorytm.
An average colour value from the entire icon, otherwise you would get brown all the time.
To nie ma sensu. Na przykład, w jaki sposób ikony Skype'a , wiersza polecenia lub µTorrent zmieniają się w brązowe? ಠ_ ఠ (Ostatnim razem, kiedy po raz ostatni przeprojektowałem jeden z algorytmów obliczania kolorów w systemie Windows, zajęło mi to kilka lat uwagi i wielu różnych prac, aby w końcu to rozgryźć. Wygląda na to, że w końcu mogę to zhakować jeden w pewnym momencie.)