AttÄlu desaturÄcija, izmantojot pÄrlÅ«kprogrammu
Viens no plaÅ”i izplatÄ«tiem lapu estÄtikas efektiem attÄlu galerijÄs, mÄkslinieku protfolio, ir melnbalts attÄls, uz kura uzbraucot ar pelÄ«ti, tas paliek krÄsains.
Å Äds efekts parasti tiek panÄkts, izmantojot divus attÄlus, no sÄkuma tiek attÄlots melnbaltais attÄls, pÄc tam, izmantojot CSS vai jQuery (jaukÄkam efektam), tiek attÄlots krÄsains attÄls. Skaists paraugs, kÄ to panÄkt, ir atrodams webdesignerwall.com.
Slinkums gan ir cilvÄces dzinÄjspÄks un tÄ kÄ man bija absolÅ«ts slinkums taisÄ«t divas attÄla versijas (melnbalto un krÄsaino), tad meklÄju iespÄjas kÄ to izdarÄ«t, izmantojot vienu attÄlu.
Pirmais variants, ko izmÄÄ£inÄju, bija pixasticĀ javascript bibliotÄka.Ā
Most of the Pixastic actions work by accessing the pixel data of the image and manipulating the image on pixel by pixel basis. This is done via the getImageData() / putImageData() methods available on the HTML5 canvas element. The methods are currently only fully supported by Firefox, Opera and Safari with a recent WebKit nightly build. The core Pixastic functions take care of creating a canvas element, draws the image on this element and retrieves the image data. This data is then passed on to the relevant action which does "its thing" before returning the data. Finally, the modified data is put back into the canvas and the process is complete.
TÄtad principÄ pixastic sagaida, kamÄr ielÄdÄjas attÄls, pÄc tam to pikseli pa pikselim modificÄ. Ā Pixastic atbalsta daudz dažÄdas attÄla modifikÄcijas iespÄjas, tai skaitÄ, Blur, Brightness/Contrast, Crop, Desaturate, Emboss, Flip Horizontally, Flip Vertically, Glow, Sepia, Sharpen.
Atgriežoties pie attÄla desaturÄcijas, izmantojot pixastic, you.arenot.me apraksta to detaļÄs un modificÄjot viÅa piedÄvÄto kodu, iznÄca kaut kas Å”Äds (desaturÄts tiek attÄls ar klasi "desaturate"):
<script type="text/javascript">
Ā Ā $(window).load(function () {
Ā Ā $(".desaturate").each(function (index, obj) {
Ā Ā Ā $(this).pixastic("desaturate").mouseenter(function (e) {
Ā Ā Ā Ā Ā Ā Pixastic.revert(this);
Ā Ā }).mouseleave(function (e) {
Ā Ā Ā Ā $(this).pixastic("desaturate").mouseenter(function (e) {
Ā Ā Ā Ā Ā Ā Pixastic.revert(this);
PrincipÄ vienÄ«gÄ problÄma Å”eit ir tÄ, ka attÄlam ir jÄbÅ«t pilnÄ«bÄ ielÄdÄtam pirms viÅu var pÄrveidot. Ja lapÄ ir viens attÄls, tad tÄ nav problÄma, bet tiklÄ«dz lapÄ ir vairÄk attÄlu, kas jÄpÄrveido, tÄ sÄkas attÄla "mirgoÅ”ana" - vispirms acs paspÄj noÄ·ert krÄsaino attÄla versiju un tikai pÄc tam tÄ pÄrveidojas melnbalta.
PozitÄ«vais: Å”Äds risinÄjums strÄdÄ Firefox, Opera, Safari, Chrome jaunÄkajÄs versijÄs. Internet Explorer strÄdÄ desaturÄcija, bet nestrÄdÄ krÄsu atjaunoÅ”ana uz hover.
Otrs variants ir, izmantot CSS3 piedÄvÄtÄs opcijas, kas gan pagaidÄm vÄl pa lielam nav plaÅ”i atbalstÄ«tas.
Pirmais filtrus ieviesa Microsoft un Å”Ädi filtri Internet ExplorerÄ« dzÄ«vo jau no 5 versijas. Nevajag pat CSS3, varam attÄlu vienkÄrÅ”i desaturÄt ar klases palÄ«dzÄ«bu:
.desaturate{ filter: gray; /* IE 5+ */ }
Jaunajos IE pamainÄ«jÄs sintakse un tagad desaturÄcija tiek iegÅ«ta Å”ÄdÄ veidÄ:
Ā -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)"; /* new IE */
SavukÄrtĀ World Wide Web Consortium pavisam nesen publicÄja Editor's Draft rekomendÄcijÄm par tÄmu "Filter Effects". Working Draft Å”obrÄ«d ir ar statusuĀ Upcoming.Ā
Filter Effects allows graphics filters to be applied to an element (after it has been rendered, but before it has been composited, see Compositing and Blending). Filters can blur an element, add a shadow, modify colors, increase contrast, add a ātexture,ā etc. The module defines a number of common graphics effects, but also allows to use filters written in OpenGL (OpenGL ES Shading Language). This module is made in cooperation with SVG.
Å obrÄ«d filtru efektus atbalsta Google Chrome un Safari jaunÄkÄs versijas.
.desaturate { -webkit-filter: grayscale(1); /* Chrome 18+, Safari 6.0+ */ }
Firefox filtru efektus vÄl neatbalsta, tÄpat arÄ« Opera. Bet gan Opera, gan Firefox atbalsta SVG filtrus. Firefox pie tam ļauj SVG filtrus piemÄrot HTML elementiem. Opera gan Å”Ädas vaļības nepieļauj, lÄ«dz ar to, atmetot Operas atbalstu, filtrus ir salÄ«dzinoÅ”i viegli uzklÄt pÄrÄjÄm pÄrlÅ«kprogrammÄm.
Ā Ā Ā Ā filter: url(#desaturate); Ā /* Firefox 4+ */
Ā Ā Ā Ā filter: gray; /* IE 5+ */
Ā Ā Ā Ā -webkit-filter: grayscale(1); /* Chrome, Safari */
Ā Ā Ā Ā -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)"; /* new IE */
Ā Ā Ā Ā -webkit-filter: none;
Ā Ā Ā Ā -ms-filter: none;
<svg style="width: 0; height: 0">
<filter id="desaturate"><feColorMatrix type="saturate" values="0"/></filter>
<img src="ATTÄLA SAITE" class="desaturate" />
SecinÄjums: ja nav nopietnu iebildumu Operas atbalstam, var mÄÄ£inÄt izbraukt uz filtru efektiem, lai arÄ« vÄl Ŕī tÄma ir pagalam nenopietna.
Par Å”o paÅ”u problÄmu var lasÄ«t angliski:Ā http://demosthenes.info/blog/532/Convert-Images-To-Black--White-With-CSS
Un var lasīt krieviski: http://bolknote.ru/2012/03/14/~3605/#27