canvas滤镜之简单的取反

canvas滤镜之简单的取反

自己学习了一下canvas滤镜,编写一个简单的小界面,嘿嘿!

注释都在里面啦啦啦,感兴趣的来瞅瞅哦😯  欢迎指正

css样式:

#wrap{

width:600px;

height:600px;

background-color:#EEEEEE;

}

#sourceDiv{

float:left;

border:2pxsolidblue;

}

#canvasDiv{

float:right;

border:2pxsolidred;

}

body里面




js部分

window.onload=function() {

varimg=document.getElementById("img");

varcanvas=document.getElementById("canvas");

varbtn=document.getElementById("btn");

canvas.width=img.clientWidth;

canvas.height=img.clientHeight;

pen=canvas.getContext("2d");

pen.drawImage(img,0,0, canvas.width, canvas.height);//把图片放在画布上

}

//getImageData(x,y,width,height) 复制画布上指定矩形的像素数据 然后通过putImageData()将图像数据放回画布:

//返回ImageData对象,该对象拷贝了画布指定矩形的像素数据

//对于 ImageData 对象中的每个像素,都存在着四方面的信息rgba,

//color/alpha 信息以数组形式存在,并存储于 ImageData 对象的 data 属性中

//即 RGBA 值 eg:red=ImageData.data[0];

btn.onclick=function() {

varimgData=pen.getImageData(0,0, canvas.width, canvas.height);

varlen=canvas.width*canvas.height*4;

//遍历imgData.data改变像素值

for(vari=0; i

//每一个像素的color/alpha 信息

//取反色

imgData.data[i]=255-imgData.data[i];

imgData.data[i+1]=255-imgData.data[i+1];

imgData.data[i+2]=255-imgData.data[i+2];

imgData.data[i+3]=255;

}

// 将图像数据imgData放回画布

//putImageData(imgData,x,y,dirtyX,dirtyY,dirtyWidth,dirtyHeight);

//在画布上的位置x y在画布上放置图像的位置水平位置偏移量 垂直位置偏移量图像宽度

pen.putImageData(imgData,0,0);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、图形的组合方式 globalAlpha是一个介于0和1之间的值(包括0和1),用于指定所有绘制的透明度。默认值...
    空谷悠阅读 5,203评论 0 0
  • 线条样式 绘制直线,第五章知识简单回顾 lineWidth 设置或返回当前的线条宽度,单位为像素 lineCap ...
    Zd_silent阅读 3,398评论 0 0
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,187评论 2 32
  • 一、简介 HTML5 中的定义:“它是依赖分辨率的位图画布,你可以在 canvas 上面绘制任何图形,甚至加载照片...
    destiny0904阅读 13,620评论 1 4
  • “今年过年回家吗?”是啊,又快过年了,每到这个时候就会很纠结。回家吗?我是喜欢故乡的,虽然一直都没弄明白个所以然来...
    酒鬼阿辽阅读 1,287评论 0 0