JS koda za barvanje slik

Zanima me če obstaja kaka skripta ki bi na rollover pobarvala sliko v grayscale al pa črnobelo no ... seveda brez tega da bi delal dodatne slike ki bi ble grayscale... torej da zadeva deluje samodejno :)

Tud PHP pride v poštev :)

15 odgovorov

Sliko se da praktično v vsakem programskem jeziku pretvori v sivinsko. Vse kar je potrebno narediti je da letiš čez vse pixle na slike vzameš vrednost za rdečo, zeleno in modro barvo, jih sešteješ in deliš s tri, ter to vrednost zapišeš nazaj v vsako od 3 barv. Sivo barvo dobiš tako da so vse vrednosti (za rdečo,zelena in modra) enake.

Sedaj vse kar potrebuješ pri posameznem jeziku je funkcija za extraktanje posameznega pixla iz slike, ter kreiranje slike iz bufferja.

kako to narediš v php-ju imaš v spodnjem linku. Vse kar moraš sedaj narediti je da predelaš da se to izvede na rollover.

http://bubble.ro/HowtoconvertanimagetograyscaleusingPHP.html

Z WideImage nekako takole:

WideImage::load('slika.png')->asGrayscale()->saveToFile('siva.png');

Lahko si pogledaš tudi demo.

provincjalc, se ti ne zdi, da malo kompliciraš? :)

...
imagefilter($imageresource, IMGFILTER_GRAYSCALE);
...

Je pa rahlo čudno vprašal neon, PHP pride v poštev, le dodatnih slik ne bi rad delal? Ne bo šlo :) PHP je server side in mora generirati dodatno sliko v grayscale, če želiš, da ti jo bo browser tako tudi pokazal.

Vini, pa mogoče še lažje z wideimage ->asGrayscale.

Roky, seveda, WideImage je pač en PHP wrapper za GD2, ki ga je sicer napisal nam vsem znani fatg, plod slovenskega znanja torej :P

Verjetno metoda asGrayscale izgleda nekako tako, kot sem napisal zgoraj, torej:

public function asGrayscale() {
   imagefilter($this->image_resource, IMG_FILTER_GRAYSCALE);
   return $this;
}

Imam prav, fatg? :)

Kaj je lažje v tem primeru, je sicer stvar debate, ampak če fant želi sliko res le pretvoriti v grayscale, je mogoče instalacija dodatne knjižnice rahel overhead :)

Če pa želi nad sliko izvajati še kaj, potem je pa res smotrno razmišljati v smeri nekega wrapperja, pa naj bo to WideImage ali pa katerikoli drugi.

Smo šli pa verjetno rahlo off-topic, če jaz prav razumem, želi on neko client-side rešitev, ki jo bo pa s PHPjem težko izvedel :)

Vini, res je, to je enostaven wrapper, ki pa mu zna priti prav pri nalaganju slik različnih extensions. Karkoli že, le dodatna izbira.

Obstaja možnost, da dosežeš prav to na strani clienta, z uporabo CSS filter propertyja, ki pa ga "žal" podpira le IE :)

Vini:
Imam prav, fatg? :)

podcenjuješ mojo sposobnost kompliciranja! :D

Drugače pa, ja, library je lahko overhead, če rabiš samo eno malenkost.

2

U, jebenti :P

To si želel doseči nek kvazi metaprogramming, da si za metode dodajal nove classe?

Vse za višji cilj! :D