html - Mimic Photoshop RGB levels with CSS and SVG filter -
i've done in past , know exists, reason don't find right (wasted couple of hours no success).
i want mimic photoshop rgb levels via css.
on following image changed middle value 1 0.5.
i wanna same effect (or @ least close possible) css.
i've tried following code: https://jsfiddle.net/txwu3so5/
i need find replacement code effect. actual code affects white color (i don't want that).
<html> <head> <meta charset="utf-8"> <style type="text/css"> .img_02 { filter: url(#level-50); } </style> </head> <body> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="position:absolute;height:0;"> <defs> <filter id="level-50" x="0" y="0"> <!-- begin of code replace --> <fecolormatrix type="matrix" values=" 0.5 0 0 0 0 0 0.5 0 0 0 0 0 0.5 0 0 0 0 0 1 0" /> <!-- end of code replace --> </filter> </defs> </svg> <img class="img_01" src="https://image.ibb.co/kzz41q/image.png" /> <br /><br /> <img class="img_02" src="https://image.ibb.co/kzz41q/image.png" /> </body> </html> in photoshop change 1 different values, example: 0.75, 0.5, etc. want mimic somehow css. remembered used code similar above one, thing needs changed replacement code.
[edit 1]
this part of problem. requirement use svg filter tag.
you updating gamma of image here. there built-in filter component in svg that.
<fecomponenttransfer type="gamma" ...> see demo below.
note: filter doesn't update on chrome, try demo firefox instead
var slider = document.getelementbyid("slider"); var gamma = document.getelementbyid("gamma"); var gammar = document.getelementbyid("gammar"); var gammag = document.getelementbyid("gammag"); var gammab = document.getelementbyid("gammab"); slider.addeventlistener("input", function(evt) { var slidervalue = evt.target.value; gamma.textcontent = slidervalue; gammar.setattribute("exponent", slidervalue); gammag.setattribute("exponent", slidervalue); gammab.setattribute("exponent", slidervalue); }); .img_02 { filter: url(#level-50); } <svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="position:absolute;height:0;"> <defs> <filter id="level-50" x="0" y="0"> <!-- begin of code replace --> <fecomponenttransfer> <fefuncr type="gamma" exponent="2.2" id="gammar"/> <fefuncg type="gamma" exponent="2.2" id="gammag"/> <fefuncb type="gamma" exponent="2.2" id="gammab"/> </fecomponenttransfer> <!-- end of code replace --> </filter> </defs> </svg> <img class="img_01" src="https://image.ibb.co/kzz41q/image.png" /> <img class="img_02" src="https://image.ibb.co/kzz41q/image.png" /> <br/> <input id="slider" type="range" min="0" max="4" step="0.1" value="1"/> <p id="gamma"></p> 
Comments
Post a Comment