Advertisement
Guest User

Untitled

a guest
Jan 3rd, 2013
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function rgbToHsl(r, g, b){
  2.     r /= 255, g /= 255, b /= 255;
  3.     var max = Math.max(r, g, b), min = Math.min(r, g, b);
  4.     var h, s, l = (max + min) / 2;
  5.  
  6.     if(max == min){
  7.         h = s = 0; // achromatic
  8.     }else{
  9.         var d = max - min;
  10.         s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
  11.         switch(max){
  12.             case r: h = (g - b) / d + (g < b ? 6 : 0); break;
  13.             case g: h = (b - r) / d + 2; break;
  14.             case b: h = (r - g) / d + 4; break;
  15.         }
  16.         h /= 6;
  17.     }
  18.  
  19.     return [h, s, l];
  20. }
  21. function rgb(str) {
  22.     return str.split(',').map(function(part) { return parseInt(part.replace(/\D/g,''), 10); });
  23. }
  24. function greyscale() {
  25.     Array.prototype.forEach.call(document.all, function(el) {
  26.         var rgb_b = rgb(window.getComputedStyle(el).backgroundColor),
  27.         rgb_f = rgb(window.getComputedStyle(el).color);
  28.        
  29.         var hsv_b = rgbToHsl(rgb_b[0],rgb_b[1],rgb_b[2]),
  30.         hsv_f = rgbToHsl(rgb_f[0],rgb_f[1],rgb_f[2]);
  31.  
  32.         with(el.style) {
  33.             color = 'hsl(' + hsv_f[0] + ', 0%,50%)';
  34.             backgroundColor = 'hsl(' + hsv_b[0] + ', 0%,25%)';
  35.         }
  36.     });
  37. }
  38. greyscale();​​​​​
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement