Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function grayscale(image) {
- var imgObj = $(image).get(0);
- if (! imgObj) return;
- $(image).attr("orig", $(image).attr("src"));
- if($.browser.msie){
- grayscaleImageIE(imgObj);
- } else {
- imgObj.src = grayscaleImage(imgObj);
- }
- }
- function resetImage(image) {
- var imgObj = $(image).get(0);
- if (! imgObj) return;
- if($.browser.msie){
- resetImageIE(imgObj);
- } else {
- imgObj.src = $(image).attr("orig");
- }
- }
- function grayscaleImageIE(imgObj)
- {
- imgObj.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)';
- }
- function resetImageIE(imgObj)
- {
- imgObj.style.filter = '';
- }
- function grayscaleImage(imgObj)
- {
- var canvas = document.createElement('canvas');
- var canvasContext = canvas.getContext('2d');
- var imgW = imgObj.width;
- var imgH = imgObj.height;
- canvas.width = imgW;
- canvas.height = imgH;
- canvasContext.drawImage(imgObj, 0, 0);
- var imgPixels = canvasContext.getImageData(0, 0, imgW, imgH);
- for(var y = 0; y < imgPixels.height; y++){
- for(var x = 0; x < imgPixels.width; x++){
- var i = (y * 4) * imgPixels.width + x * 4;
- var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3;
- imgPixels.data[i] = avg;
- imgPixels.data[i + 1] = avg;
- imgPixels.data[i + 2] = avg;
- }
- }
- canvasContext.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
- return canvas.toDataURL();
- }
Add Comment
Please, Sign In to add comment