欢迎来到天天文库
浏览记录
ID:11270607
大小:40.00 KB
页数:6页
时间:2018-07-11
《android图片特效算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、图片特效算法1、把资源图片转为灰度图原理:彩色图像处理成黑白效果通常有3种算法:(1).最大值法:使每个像素点的R,G,B值等于原像素点的RGB(颜色值)中最大的一个;(2).平均值法:使用每个像素点的R,G,B值等于原像素点的RGB值的平均值;(3).加权平均值法:对每个像素点的R,G,B值进行加权以下是平均法://获取当前点pos=y*width+x;//获取图片当前点的像素值pixColor=dst[pos];//获取RGB三原色R=Color.red(pixColor);G=Color.green(pixColor);B=Color.blue(pixColor);//去平均pixel
2、=(R+G+B)/3;R=G=B=pixel;2、底片效果原理:GetPixel方法获得每一点像素的值,然后再使用SetPixel方法将取反后的颜色值设置到对应的点//RGB三色取反pixel=R;pixel=255-pixel;R=pixel;//计算后重置R值,以下类同pixel=G;pixel=255-pixel;G=pixel;pixel=B;pixel=255-pixel;B=pixel;3、浮雕效果原理:对图像像素点的像素值分别与相邻像素点的像素值相减后加上128,然后将其作为新的像素点的值.pos=y*width+x;pos1=(y+1)*width+(x+1);pixColo
3、r=dst[pos];//获取图片当前点的像素值pixColor1=dst[pos1];//获取图片当前点的像素值R=Color.red(pixColor);//获取RGB三原色G=Color.green(pixColor);B=Color.blue(pixColor);R1=Color.red(pixColor1);//获取RGB三原色G1=Color.green(pixColor1);B1=Color.blue(pixColor1);R=Math.abs(R-R1+128);G=Math.abs(G-G1+128);B=Math.abs(B-B1+128);if(R<0)R=0;if(R
4、>255)R=255;if(G<0)G=0;if(G>255)G=255;if(B<0)B=0;if(B>255)B=255;1、冰冻效果pixel=R-G-B;pixel=pixel*3/2;if(pixel<0)pixel=-pixel;if(pixel>255)pixel=255;R=pixel;//计算后重置R值,以下类同pixel=G-B-R;pixel=pixel*3/2;if(pixel<0)pixel=-pixel;if(pixel>255)pixel=255;G=pixel;pixel=B-R-G;pixel=pixel*3/2;if(pixel<0)pixel=-pixe
5、l;if(pixel>255)pixel=255;B=pixel;1、雾化效果原理:在图像中引入一定的随机值,打乱图像中的像素值RandomMyRandom=newRandom();//随机数,在像素块数值不变时,随机数数值越大越模糊,像素块越密集intk=MyRandom.nextInt(123456);//像素块大小;在随机数不变的情况下,所除的数越大越模糊,越密集intdx=x+k%8;intdy=y+k%8;if(dx>=width)dx=width-1;if(dy>=height)dy=height-1;pos=dy*width+dx;pos1=y*width+x;dst[pos1
6、]=dst[pos];//获取图片当前点的像素值2、积木效果原理:对图像中的各个像素点着重(即加大分像素的颜色值)着色.//去平均pixel=(R+G+B)/3;if(pixel>=128){pixel=255;}else{pixel=0;}R=G=B=pixel;3、熔铸效果pixel=R*128/(G+B+1);if(pixel<0)pixel=0;if(pixel>255)pixel=255;R=pixel;pixel=G*128/(B+R+1);if(pixel<0)pixel=0;if(pixel>255)pixel=255;G=pixel;pixel=B*128/(R+G+1);
7、if(pixel<0)pixel=0;if(pixel>255)pixel=255;B=pixel;1、连环画效果//R=
8、g–b+g+r
9、*r/256;pixel=Math.abs(G-B+G+R)*R/256;if(pixel>255)pixel=255;R=pixel;//G=
10、b–g+b+r
11、*r/256;pixel=Math.abs(B-G+B+R)*R/256;if(pixel>255)pixel
此文档下载收益归作者所有