Linux negative screen / Xcalib

Fórumok

Sziasztok,

Régóta használom az "xcalib -i -a" parancsot Linux alól hogy éjjel negáljam a desktop képet böngészéshez és fejlesztéshez. Nagyon szemkímélő.

Azonban a színek is negálódnak. Viszont ha rá tudnánk vinni egy 180 fokos eltolást HUE értékben (vagy RGB shift ami sima értékek cseréje), akkor a színek megmaradnak, miközben a fehér és fekete felcserélődik. Vannak még finomabb megoldások, melyek figyelembe veszik a színek erősségét is, de nekem az említett egyszerűbb is megtenné. További infó a témában:

https://github.com/vn971/linux-color-inversion

Példa parancs Image Magick-kel (invertál és 180 fokkal eltolja (vissza tolja) a színeket):

convert input.png -negate -modulate 100,100,0.5 output.png

Xcalib Github fiókjában már nyitottak erre feature request-et, lásd itt:

https://github.com/OpenICC/xcalib/issues/2

Nem lenne kedve valakinek átírni a forrást RGB shift-tel? Mivel tud negálni a kód, ezért az érték csere nem szabad hogy túl bonyolult legyen. Sima C kód, egyetlen fájl az egész:

https://github.com/OpenICC/xcalib/blob/master/xcalib.c

Fel tudnék ajánlani érte valamit cserébe (akár pénzt). Windows-ra létezik a fenti linken is leírt NegativeScreen nevű cucc, de itt az Xcalib nagyon lightweight és platform barát lenne. Nem függ a compositortól.

A Linux közösségnek nagy segítség lenne szerintem.

Köszönöm.

Hozzászólások

Tényleg kösz, de már próbáltam régebben és nem annyira jó, mert az olvashatósághoz a nagyobb kontraszt jó. viszont fehér háttérnél ezt azzal kapom meg laptopon, ha növelem a fényerőt - de közben éjjel minimalizálni akarom a fényerőt - vagyis az igényem az, hogy minél kisebb fényerővel minél nagyobb kontraszt legyen.

A kettő ellentétes lenne, kivéve ha negatívba kapcsoljuk a képet. Ott növelhetem a fényerőt, melynek hatására a kisebb terület fog fényesedni, vagyis a betűk, míg a nagy fényerőt jelentő háttér az fekete marad. (Ha nem fekete, akkor átkapcsolom a desktop-ot high contrast módba, ami fehér feketét csinál a weboldalból).

Ebben a színek melegségének állítása nem segít nekem jelenleg.

Eredeti kép:

"Rossz" inverz:

"Jó" inverz:

Mert valszeg rossz környezetben használod. Se a túl sötét, se a túl világos nem jó a szemnek. Illetve ennek keretein belül a minél nagyobb kontraszt jó, mert az olvashatóbb és így kevésbé rontja a szemet. Hiába megfelelő a kép össz fényereje, ha nem tudunk disztingválni a tartalom között - és fordítva.

Ennek megfelelően én a világos alapot kedvelem egész nap, és inkább a monitor megvilágítását állítom a szoba fényéhez úgy, hogy még a kontraszt is jó legyen. Azonban amint egy bizonyos mértékű fényerő alá megy a környezet fényessége, ettől a ponttól jobb a szememnek a fekete alap.

Tehát környezet függő. Egy teljesen sötét szobában az ágyban neten olvasni jobb a sötét háttér, és ezen kereten belül lehet játszani a kontraszttal. Én nem teszem túl nagyra, se nem túl kicsire, hanem optimálisra.

BTW láttam az egyik munkádon pár éve hogy szereted a színeket és algókat (ugye a kép kitöltés minden színnel furcsa módon cuccodra gondolok). Még el akarok gondolkodni hogyan tudnám színprofil nélkül tovább közelíteni függvénnyel a "negatív" fényerő megállapítását, hogy pontosabb legyen a szaturáció negatívban az eredetihez képest, de ha érdekel, jó lenne kigyúrni valami egyszerű és hatékonyat. Ahogy látod feljebb, egyetlen sor a mérvadó kód, elég faék. Persze dícséretes hogy a többi részével összerakták.

Egyébként Androidra (talán 8-tól felfelé) van egy okos negatív, de nagyon lassú, és elég rosszak is a színek. Azt nem értettem hogy miért ilyen rosszat tudtak kizzadni. Akkor már a hue 180 fokos elforgatás is jobb.