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.

enter image description here

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

Popular posts from this blog

How to understand 2 main() functions after using uftrace to profile the C++ program? -

c# - Update a combobox from a presenter (MVP) -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -