2010-05-21 10 views
12

Zauważyłem, że jasność monitorów komputerowych drastycznie różni się w zależności od komputera.Jak używać JavaScriptu do pomiaru jasności monitora użytkownika?

W związku z tym znacznie zmienia wygląd stron internetowych.

Czy istnieje sposób użycia JavaScriptu do automatycznego wykrywania, jak jasny (lub ciemny) jest monitor użytkownika, aby odpowiednio dostosować kolory strony?

UPDATE

Należy pamiętać, że nie chcę zaangażowania ręcznej obsługi. Chcę, aby to wykrywanie było automatyczne, aby użytkownicy nie zdawali sobie sprawy, że dynamicznie zmieniam paletę kolorów automatycznie w oparciu o jasność/ciemność ich monitora.

UPDATE 2

Należy również pamiętać, że nie jestem mówić o chcąc dostosować/skalibrować użytkowników końcowych rzeczywistego monitora, ale zamiast tego, programowo ustawić wybrany mają być wyświetlane na stronie internetowej kolor samo. Oznacza to, że jeśli użytkownik końcowy ma ciemniejszy niż normalny (jasność) wyświetlacz, zamiast tego wyświetlam wersję mojej strony internetowej, która zamiast tego używa jaśniejszych kolorów.

+1

Niestety, ale to, czego "chcesz", jest po prostu niemożliwe. Dla każdego programu, nie mówiąc już o JavaScript. – bobince

+5

Nawet jeśli było to możliwe, nie sądzisz, że użytkownik dostosował jasność z jakiegoś powodu? –

+0

+1 szalone pytanie, -1 nieprzyjemne aktualizacje –

Odpowiedz

2

Nie można tego zrobić z javascript (i nie sądzę, że można to zrobić w jakimkolwiek innym języku, przynajmniej bez pomocy sprzętu).

14

Nie można tego zrobić programowo. To, co musisz zrobić, to napisać jakiś test kalibracji monitora, ewentualnie używając wariantów images like these, pokazując użytkownikowi dwa lub więcej obrazów i prosząc ich o wybranie tego, który przyjrzy się bliżej, dostosowując kolory za każdym razem, gdy dokonają wyboru, do czujesz, że wprowadzone przez ciebie zmiany są dokładne.

EDYCJA: Zasadniczo sugeruję zbudowanie czegoś takiego jak this.

+0

Co zalecamy, wymaga ręcznego zaangażowania użytkownika, prawda? Jeśli tak, to nie tego szukam. – HankV

+2

+1 Nie ma sposobu, aby to zrobić w JavaScript, ale myślę, że staje się to możliwe. Spójrz na kanał danych displayowych http://en.wikipedia.org/wiki/Display_Data_Channel – Shaji

+0

@HankV: Nie ma sposobu (obecnie) na zrobienie tego w JavaScript bez udziału użytkownika. Czy rozważałeś użycie Java? Nawet wtedy prawdopodobnie będziesz potrzebował albo zaangażowania użytkownika albo sprzętu, aby skalibrować monitor, którego potrzebujesz, aby zobaczyć, jaki jest rzeczywisty wydruk danego koloru, i dostosuj ten kolor, dopóki nie będzie on poprawny. TO ZNACZY. jeśli 0xFF0000 pokazuje 0xFF1111, wiesz, że wszystkie kolory muszą być zaciemnione, aby wyglądały poprawnie – Josh

1

Nie. Zasadniczo JavaScript nie może dowiedzieć się wiele na temat komputera ze względów bezpieczeństwa.

4

Większość ustawień jasności/zaciemnienia jest funkcją monitora. Nic w komputerze (nie mówiąc już o JavaScript działającym w piaskownicy) jest w stanie uzyskać dostęp do tego rodzaju informacji - jest to głównie jednokierunkowy przepływ danych między komputerem a monitorem. Czynniki takie jak jasność pomieszczenia i to, czy światło za monitorem będzie miało wpływ na wygląd ekranu w takim samym stopniu.

Nie ma sposobu, aby nakłonić wszystkich do obejrzenia witryny w taki sposób, w jaki ją widzisz. Im szybciej sobie to uświadomisz, tym łatwiejsze będzie twoje życie.

+0

+1 dla "Nie ma sposobu, aby wszyscy zobaczyli twoją stronę internetową w taki sposób, w jaki ją zobaczysz. Im szybciej sobie to uświadomisz, tym łatwiej będzie Ci się żyć" !!! – Josh

3

Zamiast tego zamiast aplikacji Flash/Silverlight? Może korzystać z kamery użytkownika (jeśli ją posiada). Następnie można analizować obrazy/wideo z kamery, aby wnioskować, ile światła monitora odbija się od twarzy użytkownika.

Byłaby to bardzo delikatna i skomplikowana aplikacja.

+1

-1 Nie ma absolutnie żadnego sposobu, żeby to zadziałało! +1 za pomysłowość :) – Skilldrick

+1

Poproś użytkownika, aby podniósł lusterka do aparatu, aby kamera przechwyciła ekran i skalibrowała ... lol! – Josh

+1

Silverlight 4 umożliwia dostęp do lokalnych wywołań API, ale wymaga od użytkownika nadania podwyższonych uprawnień. Nawet wtedy nie jestem pewien, czy Silverlight będzie miał dostęp do niezbędnych właściwości ekranu, aby wprowadzić te typy zmian. – Nick

Powiązane problemy