Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. window.onload = function(){
  2. var img = new Image();
  3.  
  4. var canvas = document.getElementById("canvas");
  5. var ctx = canvas.getContext("2d");
  6.  
  7. //Ładowanie obrazka
  8. img.src = "img/image.jpg";
  9. img.onload = function() {
  10. ctx.drawImage(img, 0,0);
  11. }
  12.  
  13. var red = document.getElementById("r-color-range");
  14. var green = document.getElementById("g-color-range");
  15. var blue = document.getElementById("b-color-range");
  16. var brightness = document.getElementById("brightness-range");
  17. var contrast = document.getElementById("contrast-range");
  18.  
  19. // Zmiana koloru czerwonego
  20. red.oninput = function() {
  21. ctx.drawImage(img, 0,0);
  22. imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
  23. for (var i = 0; i < imageData.data.length; i += 4) {
  24. imageData.data[i] += parseInt(red.value);
  25. }
  26. ctx.putImageData(imageData, 0, 0);
  27. }
  28.  
  29. // Zmiana koloru zielonego
  30. green.oninput = function() {
  31. ctx.drawImage(img, 0,0);
  32. imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
  33. for (var i = 0; i < imageData.data.length; i += 4) {
  34. imageData.data[i+1] += parseInt(green.value);
  35. }
  36. ctx.putImageData(imageData, 0, 0);
  37. }
  38.  
  39. // Zmiana koloru niebieskiego
  40. blue.oninput = function() {
  41. ctx.drawImage(img, 0,0);
  42. imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
  43. for (var i = 0; i < imageData.data.length; i += 4) {
  44. imageData.data[i+2] += parseInt(blue.value);
  45. }
  46. ctx.putImageData(imageData, 0, 0);
  47. }
  48.  
  49. // Zmiana jasności
  50. brightness.oninput = function() {
  51. ctx.drawImage(img, 0,0);
  52. imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
  53. for (var i = 0; i < imageData.data.length; i+= 4) {
  54. imageData.data[i] += 255 * (parseInt(brightness.value) / 100);
  55. imageData.data[i+1] += 255 * (parseInt(brightness.value) / 100);
  56. imageData.data[i+2] += 255 * (parseInt(brightness.value) / 100);
  57. }
  58. ctx.putImageData(imageData, 0, 0);
  59. }
  60.  
  61. // Kontrast
  62. function truncateColor(value) {
  63. if (value < 0) {
  64. value = 0;
  65. } else if (value > 255) {
  66. value = 255;
  67. }
  68.  
  69. return value;
  70. }
  71. contrast.oninput = function() {
  72. var factor = (259.0 * (parseInt(contrast.value) + 255.0)) / (255.0 * (259.0 - parseInt(contrast.value)));
  73.  
  74. ctx.drawImage(img, 0,0);
  75. imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
  76. for (var i = 0; i < imageData.data.length; i+= 4) {
  77. imageData.data[i] = truncateColor(factor * (imageData.data[i] - 128.0) + 128.0);
  78. imageData.data[i+1] = truncateColor(factor * (imageData.data[i+1] - 128.0) + 128.0);
  79. imageData.data[i+2] = truncateColor(factor * (imageData.data[i+2] - 128.0) + 128.0);
  80. }
  81. ctx.putImageData(imageData, 0, 0);
  82. }
  83.  
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement