Advertisement
MyZik

Untitled

Apr 11th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var h = 388, w = 344;
  2. var img = document.createElement('img');
  3. var canvas = document.createElement('canvas');
  4. var randNum = Math.floor(Math.random() * 5);
  5. canvas.height = h;
  6. canvas.width = w;
  7. var ctx = canvas.getContext('2d');
  8.  
  9. img.src = "img/soboken" + randNum + ".jpg";
  10.  
  11. img.onload = function() {
  12.     ctx.drawImage(img, 0, 0);
  13.     var image = ctx.getImageData(0, 0, w, h);
  14.     changeColor(image);
  15.  
  16. };
  17.  
  18. document.body.appendChild(canvas); //добавляет канвас на страницу, можно удалить
  19.  
  20. var changeColor = function(image){
  21.     var rand1 = [getColor(), getColor(), getColor()];
  22.     var rand2 = [getColor(), getColor(), getColor()];
  23.     for(var i = 0; i < image.data.length; i+=4){
  24.  
  25.         if(i%5 === 0){//при этом ифе заливка становится градиентной
  26.           var irand = Math.floor(Math.random()*2);
  27.             rand1[irand] *= 1.00011;
  28.             rand2[irand] *= 1.00011;
  29.         }
  30.  
  31.         c1(image.data, i, rand1);//для первой пары цвета
  32.         c2(image.data, i, rand2);//для второй пары цвета
  33.         c3(image.data, i, rand1);//для двух пар сразу
  34.     }
  35.     ctx.putImageData(image, 0, 0);
  36. };
  37.  
  38. var getColor = function() {
  39.   return Math.floor(Math.random()*255);
  40. };
  41.  
  42. var c1 = function (c, i, rand) {
  43.     if(c[i] <= 30 && c[i+1] >= 230 && c[i+2] >= 220){
  44.         c[i] = rand[0];
  45.         c[i + 1] = rand[1];
  46.         c[i + 2] = rand[2];
  47.     }
  48.     if(c[i] <= 30 && c[i+1] >= 230 && c[i+2] <= 30){
  49.         c[i] = rand[0] * 0.8;
  50.         c[i + 1] = rand[1] * 0.8;
  51.         c[i + 2] = rand[2] * 0.8;
  52.     }
  53. };
  54.  
  55.  
  56. var c2 = function (c, i, rand) {
  57.     if(c[i] >= 240 && c[i+1] >= 240 && c[i+2] <= 10){
  58.         c[i] = rand[0];
  59.         c[i + 1] = rand[1];
  60.         c[i + 2] = rand[2];
  61.     }
  62.     if(c[i] >= 240 && c[i+1] <= 10 && c[i+2] <= 10){
  63.         c[i] = rand[0] * 0.6;
  64.         c[i + 1] = rand[1] * 0.6;
  65.         c[i + 2] = rand[2] * 0.6;
  66.     }
  67. };
  68.  
  69.  
  70. var c3 = function (c, i, rand) {
  71.       if (c[i] <= 30 && c[i + 1] >= 230 && c[i + 2] >= 220) {
  72.           c[i] = rand[0];
  73.           c[i + 1] = rand[1];
  74.           c[i + 2] = rand[2];
  75.       }
  76.       if (c[i] <= 30 && c[i + 1] >= 230 && c[i + 2] <= 30) {
  77.           c[i] = rand[0] * 0.8;
  78.           c[i + 1] = rand[1] * 0.8;
  79.           c[i + 2] = rand[2] * 0.8;
  80.       }
  81.       if (c[i] >= 240 && c[i + 1] >= 240 && c[i + 2] <= 10) {
  82.           c[i] = rand[0] * 0.6;
  83.           c[i + 1] = rand[1] * 0.6;
  84.           c[i + 2] = rand[2] * 0.6;
  85.       }
  86.       if (c[i] >= 240 && c[i + 1] <= 10 && c[i + 2] <= 10) {
  87.           c[i] = rand[0] * 0.4;
  88.           c[i + 1] = rand[1] * 0.4;
  89.           c[i + 2] = rand[2] * 0.4;
  90.       }
  91. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement