使用js处理图片效
2015-08-06 13:31
651 查看
var canvas = document.createElement('canvas'); var cxt = canvas.getContext('2d'); canvas.width = 600;//创建的canvas需要设置高和宽 canvas.height = 600; var width = parseInt(canvas.getAttribute('width')); var height = parseInt(canvas.getAttribute('height')); var image = new Image(); image.onload = imageLoaded; image.src = "img/1.jpg";
底片效果
function imageLoaded(){//将图像滑到画布上cxt.drawImage(image, 0, 0);//取图像的像素数组imageData = cxt.getImageData(0, 0, width, height);//图片像素数组for(var y = 0; y < imageData.height; y++){for(var x = 0; x < imageData.width; x++){var index = y * imageData.width + x;//一个像素占4字节,p为当前指针的位置var
p = index * 4;var r = p + 0;var g = p + 1;var b = p + 2;r = 255 - imageData.data[r]; g = 255 - imageData.data[g];b = 255 - imageData.data[b];//将改变后的颜色存进数组imageData.data[p + 0] = r;imageData.data[p + 1] = g;imageData.data[p + 2] = b;}}cxt.putImageData(imageData,
0, 0);var imageData = canvas.toDataURL("image/png");var img = document.createElement("img");img.src = imageData;img.width = "600";document.body.appendChild(img);
灰度效果
function imageLoaded(){//将图像滑到画布上cxt.drawImage(image, 0, 0);//取图像的像素数组imageData = cxt.getImageData(0, 0, width, height);for(var y = 0; y < imageData.height; y++){for(var x = 0; x < imageData.width; x++){var index = y * imageData.width + x;//一个像素占4字节,p为当前指针的位置var
p = index * 4;var r = p + 0;var g = p + 1;var b = p + 2;r = g = b = (imageData.data[r] + imageData.data[g] + imageData.data[b]) / 3 ;//将改变后的颜色存进数组imageData.data[p + 0] = r;imageData.data[p + 1] = g;imageData.data[p + 2] = b;}}cxt.putImageData(imageData, 0,
0);var imageData = canvas.toDataURL("image/png");var img = document.createElement("img");img.src = imageData;img.width = "600";document.body.appendChild(img);
黑白效果
function imageLoaded(){//将图像滑到画布上cxt.drawImage(image, 0, 0);//取图像的像素数组imageData = cxt.getImageData(0, 0, width, height);for(var y = 0; y < imageData.height; y++){for(var x = 0; x < imageData.width; x++){var index = y * imageData.width + x;//一个像素占4字节,p为当前指针的位置var
p = index * 4;var r = p + 0;var g = p + 1;var b = p + 2;var avg= (imageData.data[r] + imageData.data[g] + imageData.data[b]) / 3 ;if(avg > 100) {r = g = b = 255 ;}else{r = g = b = 0 ;}//将改变后的颜色存进数组imageData.data[p + 0] = r;imageData.data[p + 1] = g;imageData.data[p
+ 2] = b;}}cxt.putImageData(imageData, 0, 0);var imageData = canvas.toDataURL("image/png");var img = document.createElement("img");img.src = imageData;img.width = "600";document.body.appendChild(img);
相关文章推荐
- 30天了解30种技术系列---(1)现代web应用服务器-Express.js
- Extjs radiogroup 获取选中
- 整理 Anglarjs的service,directve的基本用法
- Extjs textfield 宽
- js运动基础
- javaScript对Cookie的添加,获取,删除等操作
- JS 导出网页中Table内容到excel
- javascript实现鼠标放上后下边对应内容变换的效果
- JAVASCRIPT——文字出现效果练习
- ajax无刷新上传(使用ajaxfileupload.js)
- webservice 实现json模式
- js 常用方法
- js 请求URL 追加参数
- JavaScript 之 SeaJS 学习
- [Javascript] 对象的创建与类的封装
- JavaScript之数据类型
- JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
- JavaScript之数据类型
- JavaScript键码表
- JS学习-原型链的理解