Statikus zaj lĂ©trehozĂĄsa egy furcsa CSS-gradiens hibĂĄbĂłl PlatoBlockchain adatintelligencia. FĂŒggƑleges keresĂ©s. Ai.

Statikus zaj létrehozåsa egy furcsa CSS gradiens hibåból

👋 A cikkben szereplƑ bemutatĂłk egy nem szabvĂĄnyos hibĂĄval kĂ­sĂ©rleteznek, amely a CSS-gradiensekkel Ă©s az alpixel-megjelenĂ­tĂ©ssel kapcsolatos. ViselkedĂ©sĂŒk a jövƑben bĂĄrmikor megvĂĄltozhat. Ezek is baromi nehezek. Aszinkronban szolgĂĄljuk ki Ƒket, ahol rĂĄkattint a betöltĂ©shez, de tovĂĄbbra is szeretnĂ©nk figyelmeztetni arra az esetre, ha a laptop ventilĂĄtora forogni kezd.

EmlĂ©kszel arra a statikus zajra a rĂ©gi, jel nĂ©lkĂŒli tĂ©vĂ©ken? Vagy ha rossz a jel Ă©s torz a kĂ©p? Abban az esetben, ha a TV-jel fogalma megelƑzte Önt, itt van egy GIF, amely pontosan megmutatja, mire gondolok.

Kép megtekintése (automatikusan lejåtszott médiåt tartalmaz)
Statikus zaj létrehozåsa egy furcsa CSS gradiens hibåból

Igen, valami ilyesmit fogunk csinĂĄlni csak CSS hasznĂĄlatĂĄval. Íme, amit kĂ©szĂ­tĂŒnk:

MielƑtt elkezdenĂ©nk ĂĄsni a kĂłdot, szeretnĂ©m elmondani, hogy vannak jobb mĂłdszerek a statikus zajhatĂĄs lĂ©trehozĂĄsĂĄra, mint az a mĂłdszer, amelyet bemutatok. SVG-t hasznĂĄlhatunk, , a filter tulajdon, stb. ValĂłjĂĄban Jimmy Chion Ă­rt a jĂł cikk megmutatja, hogyan kell csinĂĄlni az SVG-vel.

Amit itt fogok csinĂĄlni, az egyfajta CSS-kĂ­sĂ©rlet, hogy feltĂĄrjak nĂ©hĂĄny trĂŒkköt a gradiensekkel kapcsolatos hibĂĄk kihasznĂĄlĂĄsĂĄra. HasznĂĄlhatja mellĂ©kprojektjeinĂ©l szĂłrakozĂĄsbĂłl, de az SVG hasznĂĄlata tisztĂĄbb Ă©s alkalmasabb valĂłdi projektekhez. RĂĄadĂĄsul az effektusok eltĂ©rƑen viselkednek az egyes böngĂ©szƑkben, Ă­gy ha ezeket nĂ©zi, a legjobb, ha Chrome-ban, Edge-ben vagy Firefoxban tekinti meg Ƒket.

Csavarjunk egy kis zajt!

Ennek a zajhatĂĄsnak a megvalĂłsĂ­tĂĄsĂĄhoz... gradienseket fogunk hasznĂĄlni! Nem, nincs titkos összetevƑ vagy Ășj tulajdonsĂĄg, ami ezt megvalĂłsĂ­tja. Olyan dolgokat fogunk hasznĂĄlni, amelyek mĂĄr a CSS eszköztĂĄrunkban vannak!

A „trĂŒkk” azon a tĂ©nyen alapul, hogy a szĂ­nĂĄtmenetek rosszak az Ă©lsimĂ­tĂĄsban. Tudja, milyen szaggatott Ă©lek vannak, amikor kemĂ©ny szĂ­neket hasznĂĄlunk? Igen, a legtöbben rĂłluk beszĂ©lek a cikkeimet mert egy kicsit bosszantĂłak, Ă©s mindig hozzĂĄ kell adnunk vagy el kell tĂĄvolĂ­tanunk nĂ©hĂĄny kĂ©ppontot, hogy elsimĂ­tsuk a dolgokat:

Amint lĂĄtja, a mĂĄsodik kör jobb, mint az elsƑ, mert van egy aprĂł kĂŒlönbsĂ©g (0.5%).

Íme egy Ășjabb pillantĂĄs, ezĂșttal a conic-gradient ahol nyilvĂĄnvalĂłbb az eredmĂ©ny:

Egy Ă©rdekes ötlet tĂĄmadt, miközben ezeket a bemutatĂłkat kĂ©szĂ­tettem. Ahelyett, hogy ĂĄllandĂłan javĂ­tanĂĄ a torzĂ­tĂĄst, miĂ©rt nem prĂłbĂĄlja meg az ellenkezƑjĂ©t tenni? Fogalmam sem volt, mi fog törtĂ©nni, de kellemes meglepetĂ©s volt! Felvettem a kĂșpos gradiens Ă©rtĂ©keket, Ă©s elkezdtem csökkenteni Ƒket, hogy a rossz Ă©lsimĂ­tĂĄsi eredmĂ©nyek mĂ©g rosszabbnak tƱnjenek.

LĂĄtod, milyen rossz az utolsĂł? Ez egyfajta rĂĄntott a közepĂ©n, Ă©s semmi sem sima. TegyĂŒk teljes kĂ©pernyƑre kisebb Ă©rtĂ©kekkel:

Gondolom, lĂĄtod, hovĂĄ megy ez. Furcsa torz kĂ©pet kapunk, ha nagyon kis decimĂĄlis Ă©rtĂ©keket hasznĂĄlunk a szĂ­nĂĄtmenetben lĂ©vƑ kemĂ©ny szĂ­npontokhoz. MegszĂŒletett a zajunk!

MĂ©g mindig messze vagyunk a kĂ­vĂĄnt szemcsĂ©s zajtĂłl, mert mĂ©g mindig lĂĄthatjuk a tĂ©nyleges kĂșpos gradienst. De lecsökkenthetjĂŒk az Ă©rtĂ©keket nagyon-nagyon kicsire – pĂ©ldĂĄul 0.0001% - Ă©s hirtelen nincs többĂ© gradiens, hanem tiszta szemcsĂ©ssĂ©g:

Tada! ZajhatĂĄsunk van, Ă©s csak egyetlen CSS-gradiens kell. Fogadok, ha megmutatnĂĄm ezt neked, mielƑtt elmagyarĂĄznĂĄm, soha nem vennĂ©d Ă©szre, hogy egy szĂ­nĂĄtmenetet nĂ©zel. Nagyon alaposan meg kell nĂ©znie a gradiens közepĂ©t, hogy lĂĄssa.

NövelhetjĂŒk a vĂ©letlenszerƱsĂ©get, ha a gradiens mĂ©retĂ©t nagyon nagyra tesszĂŒk, miközben a helyzetĂ©t mĂłdosĂ­tjuk:

A gradienst egy rögzĂ­tettre alkalmazzuk 3000px tĂ©ren Ă©s a 60% 60% koordinĂĄtĂĄk. A közĂ©ppontjĂĄt ebben az esetben alig vesszĂŒk Ă©szre. Ugyanez megtehetƑ radiĂĄlis gradienssel is:

És hogy a dolgokat mĂ©g vĂ©letlenszerƱbbĂ© tegyĂŒk (Ă©s közelebb a valĂłdi zajhatĂĄshoz), kombinĂĄlhatjuk a szĂ­nĂĄtmeneteket Ă©s a hasznĂĄlatot background-blend-mode elsimĂ­tani a dolgokat:

ZajhatĂĄsunk tökĂ©letes! MĂ©g ha alaposan megnĂ©zzĂŒk is az egyes pĂ©ldĂĄkat, egyik szĂ­nĂĄtmenetnek sincs nyoma benne, hanem gyönyörƱ, szemcsĂ©s statikus zaj. Ezt az Ă©lsimĂ­tĂĄsi hibĂĄt egy sima funkciĂłvĂĄ vĂĄltoztattuk!

Most, hogy ez megvan, låssunk néhåny érdekes példåt, ahol hasznålhatjuk.

AnimĂĄlt, nincs TV-jel

VisszatĂ©rve a demĂłhoz, amivel elkezdtĂŒk:

Ha ellenƑrzi a kĂłdot, lĂĄtni fogja, hogy CSS-animĂĄciĂłt hasznĂĄlok az egyik szĂ­nĂĄtmeneten. Ez tĂ©nyleg ilyen egyszerƱ! Csak annyit teszĂŒnk, hogy villĂĄmgyorsan mozgatjuk a kĂșpos gradiens helyzetĂ©t (.1s) Ă©s ezt kapjuk!

Ugyanezt a technikĂĄt alkalmaztam egy egydiv CSS art kihĂ­vĂĄsnĂĄl:

SzemcsĂ©s kĂ©pszƱrƑ

Egy mĂĄsik ötlet az, hogy a zajt egy kĂ©pre alkalmazzuk, hogy rĂ©gies megjelenĂ©st kapjunk. Vigye az egĂ©rmutatĂłt az egyes kĂ©pekre, hogy azok zaj nĂ©lkĂŒl jelenjenek meg.

Csak egy szĂ­nĂĄtmenetet hasznĂĄlok egy pszeudoelemen, Ă©s keverem a kĂ©ppel, köszönhetƑen mix-blend-mode: overlay.

MĂ©g viccesebb hatĂĄst Ă©rhetĂŒnk el, ha a CSS-t hasznĂĄljuk filter ingatlan

És ha hozzĂĄadjuk a mask a keverĂ©khez mĂ©g több effektust kĂ©szĂ­thetĂŒnk!

Szemcsés szövegkezelés

Ugyanezt a hatĂĄst alkalmazhatjuk szövegre is. IsmĂ©t csak nĂ©hĂĄny lĂĄncolt gradiensre van szĂŒksĂ©gĂŒnk az a background-image majd keverje össze a hĂĄttereket. Az egyetlen kĂŒlönbsĂ©g az, hogy mi is elĂ©rjĂŒk background-clip Ă­gy a hatĂĄs csak az egyes karakterek hatĂĄraira Ă©rvĂ©nyesĂŒl.

Generåciós mƱvészet

Ha tovĂĄbbra is a gradiens Ă©rtĂ©kekkel jĂĄtszik, meglepƑbb eredmĂ©nyeket kaphat, mint egy egyszerƱ zajhatĂĄs. Kaphatunk nĂ©hĂĄny vĂ©letlenszerƱ alakzatot, amelyek nagyon hasonlĂ­tanak generĂĄciĂłs mƱvĂ©szet!

Persze tĂĄvol ĂĄllunk az igazi generatĂ­v mƱvĂ©szettƑl, ami sok munkĂĄt igĂ©nyel. De mĂ©g mindig örömteli lĂĄtni, mit lehet elĂ©rni azzal, amit technikailag hibĂĄnak tekintenek!

Szörny arc

Utolsó példa, amire hoztam CodePen Divtober 2022 kollekció:

Csomagolta

RemĂ©lem tetszett ez a kis CSS-kĂ­sĂ©rlet. Nem igazĂĄn tanultunk valami „Ășjat”, de csinĂĄltunk egy kis furcsasĂĄgot a szĂ­nĂĄtmenetekkel, Ă©s valami szĂłrakoztatĂłvĂĄ alakĂ­tottuk. MĂ©g egyszer elmondom: ezt nem fontolgatnĂĄm valĂłdi projektben mert ki tudja, hogy az Ă©lsimĂ­tĂĄssal foglalkozni fognak-e valamikor, vagy mikor. Ehelyett ez egy nagyon vĂ©letlenszerƱ Ă©s kellemes meglepetĂ©s volt, amikor belebotlottam. EzenkĂ­vĂŒl nem olyan egyszerƱ a vezĂ©rlĂ©se, Ă©s a böngĂ©szƑk között következetlenĂŒl viselkedik.

Ez azt mondta: KĂ­vĂĄncsi vagyok, mit tudsz vele kezdeni! JĂĄtszhatsz az Ă©rtĂ©kekkel, kombinĂĄlhatsz kĂŒlönbözƑ rĂ©tegeket, hasznĂĄlhatsz a filtervagy mix-blend-mode, vagy bĂĄrmi mĂĄst, Ă©s biztosan kapsz valami igazĂĄn menƑt. Oszd meg alkotĂĄsaidat a megjegyzĂ©s rovatban – nincs nyeremĂ©ny, de szĂ©p gyƱjtemĂ©nyt kĂ©szĂ­thetĂŒnk!

IdƑbĂ©lyeg:

MĂ©g több CSS trĂŒkkök