Advertisement
Guest User

Untitled

a guest
May 16th, 2016
512
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.30 KB | None | 0 0
  1. <!DOCTYPE html>
  2.  
  3. <html>
  4. <head>
  5. <title>Image manipulation in html5 canvas | Qoncious.com</title>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <br>
  11. <form id="imageurl">
  12. <input type="url" size="100" name="source" value="http://i.imgur.com/0NuF4uh.jpg">
  13. </form>
  14. <br>
  15. <button onclick="loadimage()">Load Image</button>
  16. <br>
  17. <button onclick="reddrop(imageurl.elements[0].value)">Red drop</button>
  18. <button onclick="reddraw(imageurl.elements[0].value)">Red draw</button>
  19. <br>
  20. <button onclick="bluedrop(imageurl.elements[0].value)">Blue drop</button>
  21. <button onclick="bluedraw(imageurl.elements[0].value)">Blue draw</button>
  22. <br>
  23. <button onclick="greendrop(imageurl.elements[0].value)">Green drop</button>
  24. <button onclick="greendraw(imageurl.elements[0].value)">Green draw</button>
  25. <br>
  26. <canvas id="canvas" width="1600" height="1200">
  27. <p> No canvas support! </p>
  28. </canvas>
  29. <br>
  30. Image below is used for restoring channels to the working image.
  31. <br>
  32. <canvas id="canvasrestore" width="1600" height="1200">
  33. <p> No canvas support! </p>
  34. </canvas>
  35.  
  36. <script type="text/javascript">
  37.  
  38. function loadimage()
  39. {
  40. document.getElementById('imageurl').size = "100";
  41. var source = document.getElementById('imageurl');
  42. var canvas = document.getElementById('canvas');
  43. context = canvas.getContext('2d');
  44.  
  45. var image = new Image();
  46. image.onload = function()
  47. {
  48. canvas.height = image.height;
  49. canvas.width = image.width;
  50. var imageX = Math.ceil(canvas.width/2) - Math.ceil(image.width/2);
  51. var imageY = Math.ceil(canvas.height/2) - Math.ceil(image.height/2);
  52.  
  53. context.drawImage(image, imageX, imageY);
  54. backup(source.elements[0].value);
  55.  
  56. }
  57. image.crossOrigin = '';
  58. image.src = source.elements[0].value;
  59. }
  60.  
  61. function backup(url)
  62. {
  63. var canvasrestore = document.getElementById('canvasrestore');
  64. var canvas = document.getElementById('canvas');
  65. contextrestore = canvasrestore.getContext('2d');
  66. context = canvas.getContext('2d');
  67. var image = new Image();
  68. image.crossOrigin = '';
  69. image.src = url;
  70.  
  71. canvasrestore.height = image.height;
  72. canvasrestore.width = image.width;
  73.  
  74. var imageX = Math.ceil(canvasrestore.width/2) - Math.ceil(image.width/2);
  75. var imageY = Math.ceil(canvasrestore.height/2) - Math.ceil(image.height/2);
  76. var imageData = context.getImageData(imageX, imageY, image.width, image.height);
  77. var dataArray = imageData.data;
  78.  
  79. contextrestore.putImageData(imageData, imageX, imageY);
  80. }
  81.  
  82. function reddraw(url)
  83. {
  84. var canvasrestore = document.getElementById('canvasrestore');
  85. var canvas = document.getElementById('canvas');
  86. contextrestore = canvasrestore.getContext('2d');
  87. context = canvas.getContext('2d');
  88. var image = new Image();
  89. image.crossOrigin = '';
  90. image.src = url;
  91.  
  92. var imageX = Math.ceil(canvas.width/2) - Math.ceil(image.width/2);
  93. var imageY = Math.ceil(canvas.height/2) - Math.ceil(image.height/2);
  94. var imageData = context.getImageData(imageX, imageY, image.width, image.height);
  95. var restoreData = contextrestore.getImageData(imageX, imageY, image.width, image.height);
  96. var dataArray = imageData.data;
  97. var restoreArray = restoreData.data;
  98.  
  99. for(var i = 0; i < dataArray.length; i += 4)
  100. {
  101. var red = restoreArray[i]; // 0 to 255
  102. var green = dataArray[i + 1]; // 0 to 255
  103. var blue = dataArray[i + 2]; // 0 to 255
  104. var alpha = dataArray[i + 3]; // 0 to 255
  105.  
  106. dataArray[i] = 1 * red;
  107. dataArray[i + 1] = 1 * green;
  108. dataArray[i + 2] = 1 * blue;
  109. dataArray[i + 3] = 1 * alpha;
  110. }
  111.  
  112. context.putImageData(imageData, imageX, imageY);
  113. }
  114.  
  115. function greendraw(url)
  116. {
  117. var canvasrestore = document.getElementById('canvasrestore');
  118. var canvas = document.getElementById('canvas');
  119. contextrestore = canvasrestore.getContext('2d');
  120. context = canvas.getContext('2d');
  121. var image = new Image();
  122. image.crossOrigin = '';
  123. image.src = url;
  124.  
  125. var imageX = Math.ceil(canvas.width/2) - Math.ceil(image.width/2);
  126. var imageY = Math.ceil(canvas.height/2) - Math.ceil(image.height/2);
  127. var imageData = context.getImageData(imageX, imageY, image.width, image.height);
  128. var restoreData = contextrestore.getImageData(imageX, imageY, image.width, image.height);
  129. var dataArray = imageData.data;
  130. var restoreArray = restoreData.data;
  131.  
  132. for(var i = 0; i < dataArray.length; i += 4)
  133. {
  134. var red = dataArray[i]; // 0 to 255
  135. var green = restoreArray[i + 1]; // 0 to 255
  136. var blue = dataArray[i + 2]; // 0 to 255
  137. var alpha = dataArray[i + 3]; // 0 to 255
  138.  
  139. dataArray[i] = 1 * red;
  140. dataArray[i + 1] = 1 * green;
  141. dataArray[i + 2] = 1 * blue;
  142. dataArray[i + 3] = 1 * alpha;
  143. }
  144.  
  145. context.putImageData(imageData, imageX, imageY);
  146. }
  147.  
  148. function bluedraw(url)
  149. {
  150. var canvasrestore = document.getElementById('canvasrestore');
  151. var canvas = document.getElementById('canvas');
  152. contextrestore = canvasrestore.getContext('2d');
  153. context = canvas.getContext('2d');
  154. var image = new Image();
  155. image.crossOrigin = '';
  156. image.src = url;
  157.  
  158. var imageX = Math.ceil(canvas.width/2) - Math.ceil(image.width/2);
  159. var imageY = Math.ceil(canvas.height/2) - Math.ceil(image.height/2);
  160. var imageData = context.getImageData(imageX, imageY, image.width, image.height);
  161. var restoreData = contextrestore.getImageData(imageX, imageY, image.width, image.height);
  162. var dataArray = imageData.data;
  163. var restoreArray = restoreData.data;
  164.  
  165. for(var i = 0; i < dataArray.length; i += 4)
  166. {
  167. var red = dataArray[i]; // 0 to 255
  168. var green = dataArray[i + 1]; // 0 to 255
  169. var blue = restoreArray[i + 2]; // 0 to 255
  170. var alpha = dataArray[i + 3]; // 0 to 255
  171.  
  172. dataArray[i] = 1 * red;
  173. dataArray[i + 1] = 1 * green;
  174. dataArray[i + 2] = 1 * blue;
  175. dataArray[i + 3] = 1 * alpha;
  176. }
  177.  
  178. context.putImageData(imageData, imageX, imageY);
  179. }
  180.  
  181. function reddrop(url)
  182. {
  183. var canvas = document.getElementById('canvas');
  184. context = canvas.getContext('2d');
  185. var image = new Image();
  186. image.crossOrigin = '';
  187. image.src = url;
  188.  
  189. var imageX = Math.ceil(canvas.width/2) - Math.ceil(image.width/2);
  190. var imageY = Math.ceil(canvas.height/2) - Math.ceil(image.height/2);
  191. var imageData = context.getImageData(imageX, imageY, image.width, image.height);
  192. var dataArray = imageData.data;
  193.  
  194. for(var i = 0; i < dataArray.length; i += 4)
  195. {
  196. var red = dataArray[i]; // 0 to 255
  197. var green = dataArray[i + 1]; // 0 to 255
  198. var blue = dataArray[i + 2]; // 0 to 255
  199. var alpha = dataArray[i + 3]; // 0 to 255
  200.  
  201. dataArray[i] = 0 * red;
  202. dataArray[i + 1] = 1 * green;
  203. dataArray[i + 2] = 1 * blue;
  204. dataArray[i + 3] = 1 * alpha;
  205. }
  206.  
  207. context.putImageData(imageData, imageX, imageY);
  208. }
  209.  
  210. function bluedrop(url)
  211. {
  212. var canvas = document.getElementById('canvas');
  213. context = canvas.getContext('2d');
  214. var image = new Image();
  215. image.crossOrigin = '';
  216. image.src = url;
  217.  
  218. var imageX = Math.ceil(canvas.width/2) - Math.ceil(image.width/2);
  219. var imageY = Math.ceil(canvas.height/2) - Math.ceil(image.height/2);
  220. var imageData = context.getImageData(imageX, imageY, image.width, image.height);
  221. var dataArray = imageData.data;
  222.  
  223. for(var i = 0; i < dataArray.length; i += 4)
  224. {
  225. var red = dataArray[i]; // 0 to 255
  226. var green = dataArray[i + 1]; // 0 to 255
  227. var blue = dataArray[i + 2]; // 0 to 255
  228. var alpha = dataArray[i + 3]; // 0 to 255
  229.  
  230. dataArray[i] = 1 * red;
  231. dataArray[i + 1] = 1 * green;
  232. dataArray[i + 2] = 0 * blue;
  233. dataArray[i + 3] = 1 * alpha;
  234. }
  235.  
  236. context.putImageData(imageData, imageX, imageY);
  237. }
  238.  
  239. function greendrop(url)
  240. {
  241. var canvas = document.getElementById('canvas');
  242. context = canvas.getContext('2d');
  243. var image = new Image();
  244. image.crossOrigin = '';
  245. image.src = url;
  246.  
  247. var imageX = Math.ceil(canvas.width/2) - Math.ceil(image.width/2);
  248. var imageY = Math.ceil(canvas.height/2) - Math.ceil(image.height/2);
  249. var imageData = context.getImageData(imageX, imageY, image.width, image.height);
  250. var dataArray = imageData.data;
  251.  
  252. for(var i = 0; i < dataArray.length; i += 4)
  253. {
  254. var red = dataArray[i]; // 0 to 255
  255. var green = dataArray[i + 1]; // 0 to 255
  256. var blue = dataArray[i + 2]; // 0 to 255
  257. var alpha = dataArray[i + 3]; // 0 to 255
  258.  
  259. dataArray[i] = 1 * red;
  260. dataArray[i + 1] = 0 * green;
  261. dataArray[i + 2] = 1 * blue;
  262. dataArray[i + 3] = 1 * alpha;
  263. }
  264.  
  265. context.putImageData(imageData, imageX, imageY);
  266. }
  267. </script>
  268.  
  269. </body>
  270. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement