├── .gitignore ├── Editr-src.js ├── Editr.js └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | 4 | test.js 5 | 6 | test.JPG 7 | 8 | leftovers.js 9 | 10 | index.html 11 | -------------------------------------------------------------------------------- /Editr-src.js: -------------------------------------------------------------------------------- 1 | var Editr = function (image) { 2 | var cvs = document.createElement('canvas'), ctx, imgData; 3 | cvs.setAttribute('width', image.width); 4 | cvs.setAttribute('height', image.height); 5 | ctx = cvs.getContext('2d'); 6 | ctx.drawImage(image, 0, 0); 7 | imgData = ctx.getImageData(0, 0, image.width, image.height); 8 | //GrayScale 9 | ctx.grayScale = function () { 10 | var px = imgData.data, length = px.length, i, gray; 11 | for (i = 0; i < length; i += 4) { 12 | gray = (px[i] + px[i + 1] + px[i + 2]) / 3; 13 | imgData.data[i] = gray; 14 | imgData.data[i + 1] = gray; 15 | imgData.data[i + 2] = gray; 16 | } 17 | ctx.putImageData(imgData, 0, 0); 18 | return ctx; 19 | } 20 | //Sepia 21 | ctx.sepia = function () { 22 | var px = imgData.data, length = px.length, i, red, green, blue; 23 | for (i = 0; i < length; i += 4) { 24 | red = (px[i] * 0.393) + (px[i + 1] * 0.769) + (px[i + 2] * 0.189); 25 | green = (px[i] * 0.349) + (px[i + 1] * 0.686) + (px[i + 2] * 0.168); 26 | blue = (px[i] * 0.272) + (px[i + 1] * 0.534) + (px[i + 2] * 0.131); 27 | imgData.data[i] = red; 28 | imgData.data[i + 1] = green; 29 | imgData.data[i + 2] = blue; 30 | } 31 | ctx.putImageData(imgData, 0, 0); 32 | return ctx; 33 | } 34 | //Invert 35 | ctx.invert = function () { 36 | var px = imgData.data, length = px.length, i; 37 | for (i = 0; i < length; i += 4) { 38 | imgData.data[i] = 255 - px[i]; 39 | imgData.data[i + 1] = 255 - px[i + 1]; 40 | imgData.data[i + 2] = 255 - px[i + 2]; 41 | } 42 | ctx.putImageData(imgData, 0, 0); 43 | return ctx; 44 | } 45 | //Monochromatic Red 46 | ctx.monoRed = function () { 47 | var px = imgData.data, length = px.length, i; 48 | for (i = 0; i < length; i += 4) { 49 | imgData.data[i + 1] = 0; 50 | imgData.data[i + 2] = 0; 51 | } 52 | ctx.putImageData(imgData, 0, 0); 53 | return ctx; 54 | } 55 | //Monochromatic Green 56 | ctx.monoGreen = function () { 57 | var px = imgData.data, length = px.length, i; 58 | for (i = 0; i < length; i += 4) { 59 | imgData.data[i] = 0; 60 | imgData.data[i + 2] = 0; 61 | } 62 | ctx.putImageData(imgData, 0, 0); 63 | return ctx; 64 | } 65 | //Monochromatic Blue 66 | ctx.monoBlue = function () { 67 | var px = imgData.data, length = px.length, i; 68 | for (i = 0; i < length; i += 4) { 69 | imgData.data[i] = 0; 70 | imgData.data[i + 1] = 0; 71 | } 72 | ctx.putImageData(imgData, 0, 0); 73 | return ctx; 74 | } 75 | //180 Rotate 76 | ctx.rotate180 = function () { 77 | var image = document.createElement('img'); 78 | image.setAttribute('src', ctx.canvas.toDataURL('image/png')); 79 | ctx.translate(image.width-1, image.height-1); 80 | ctx.rotate(Math.PI); 81 | ctx.drawImage(image, 0, 0, image.width, image.height); 82 | return ctx; 83 | } 84 | //Flip Horizontally 85 | ctx.flipHorizontal = function () { 86 | var image = document.createElement('img'); 87 | image.setAttribute('src', ctx.canvas.toDataURL('image/png')); 88 | ctx.translate(image.width, 0); 89 | ctx.scale(-1, 1); 90 | ctx.drawImage(image, 0, 0, image.width, image.height); 91 | return ctx; 92 | } 93 | //Replace image on the DOM 94 | ctx.replace = function () { 95 | image.setAttribute('src', ctx.canvas.toDataURL('image/png')); 96 | } 97 | //Return the DataURL 98 | ctx.dataURL = function () { 99 | return ctx.canvas.toDataURL('image/png'); 100 | } 101 | 102 | return ctx; 103 | } -------------------------------------------------------------------------------- /Editr.js: -------------------------------------------------------------------------------- 1 | var Editr=function(f){var h=document.createElement("canvas"),b,d;h.setAttribute("width",f.width);h.setAttribute("height",f.height);b=h.getContext("2d");b.drawImage(f,0,0);d=b.getImageData(0,0,f.width,f.height);b.grayScale=function(){var a=d.data,e=a.length,c,g;for(c=0;c