阅读背景:

【Android图像处理】熔铸滤镜(效果)

来源:互联网 

熔铸滤镜(效果),就像火烧一样。

下面来看看熔铸滤镜的代码:

	//熔铸
	public static Bitmap FireImage(Bitmap bitmap) {

		int w = bitmap.getWidth();
		int h = bitmap.getHeight();

		int []oldpixels = new int[w * h];
		int []newpixels = new int[w * h];

		int color;
		int r = 0, g = 0, b = 0;
		int r1 = 0, g1 = 0, b1 = 0;

		bitmap.getPixels(oldpixels, 0, w, 0, 0, w, h);
		Bitmap result = Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565);

		for (int i = 0; i < h; i++){
			for (int k = 0; k < w; k++){
				//获取前一个像素颜色
				color = oldpixels[w * i + k];   
				r = Color.red(color);
				g = Color.green(color);
				b = Color.blue(color);

				//R 分量
				r1 = r * 128 / (g + b + 1);
				//G 分量
				g1 = g * 128 / (b + r + 1);
				//B 分量
				b1 = b * 128 / (r + g + 1);
				
				//检查各点像素值是否超出范围
				if(r1 < 0){
					r1 = 0;
				}else if (r1 > 255) {
					r1 = 255;
				}
				
				if(g1 < 0){
					g1 = 0;
				}else if (g1 > 255) {
					g1 = 255;
				}
				
				if(b1 < 0){
					b1 = 0;
				}else if (b1 > 255) {
					b1 = 255;
				}

				newpixels[w * i + k] = Color.rgb(r1, g1, b1);	            
			}			
		}
		result.setPixels(newpixels, 0, w, 0, 0, w, h);
		return result;
	}
	//熔铸
	pu



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: