Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 【Android圖像處理】黑白濾鏡(效果)

【Android圖像處理】黑白濾鏡(效果)

編輯:關於Android編程

說到黑白,我就想起小時候家裡的黑白電視機,顯示效果比起現在的液晶顯示器不知道差到哪裡去了,但是一放假就看電視依然成為周末必做的是。

那麼,在Android中要怎麼實現黑白濾鏡(效果)呢?

先來看一下代碼:

 

	//黑白
	public static Bitmap BlackWhite(Bitmap bitmap) {
		int w = bitmap.getWidth();
		int h = bitmap.getHeight();

		Bitmap resultBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565);
		int color = 0;
		int a,r,g,b,r1,g1,b1;
		int[] oldPx = new int[w * h];
		int[] newPx = new int[w * h];

		bitmap.getPixels(oldPx, 0, w, 0, 0, w, h);
		for(int i = 0; i < w * h; i++){
			color = oldPx[i];

			r = Color.red(color);
			g = Color.green(color);
			b = Color.blue(color);
			a = Color.alpha(color);

			//黑白矩陣
			r1 = (int) (0.33 * r + 0.59 * g + 0.11 * b);
			g1 = (int) (0.33 * r + 0.59 * g + 0.11 * b);
			b1 = (int) (0.33 * r + 0.59 * g + 0.11 * b);			

			//檢查各像素值是否超出范圍
			if(r1 > 255){
				r1 = 255;
			}

			if(g1 > 255){
				g1 = 255;
			}

			if(b1 > 255){
				b1 = 255;
			}

			newPx[i] = Color.argb(a, r1, g1, b1);
		}
		resultBitmap.setPixels(newPx, 0, w, 0, 0, w, h);
		return resultBitmap;
	}
這裡又用到了矩陣處理,黑白濾鏡(效果)的矩陣是

 

0.33 0.59 0.11

0.33 0.59 0.11

0.33 0.59 0.11

即每個點新的像素值為原來rgb的0.33 * r + 0.59 * g + 0.11 * b

現在來看一下效果:

\

要是再模糊一點,就和以前的黑白電視機的效果差不多了。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved