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

【Android圖像處理】底片(濾鏡)效果

編輯:關於Android編程

底片效果是怎麼實現的?

先看看代碼:

//底片
	public static Bitmap Negative(Bitmap bm){

		int Width = bm.getWidth();
		int Height = bm.getHeight();
		int color;
		int r,g,b,a;

		Bitmap bitmap = Bitmap.createBitmap(Width, Height, Bitmap.Config.ARGB_8888);

		int[] oldPx = new int[Width * Height];
		int[] newPx = new int[Width * Height];

		bm.getPixels(oldPx, 0, Width, 0, 0, Width, Height);

		for(int i = 0; i < Width * Height; i++){
			color = oldPx[i];

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

			//各通道值顏色值反轉
			r = 255 - r;
			g = 255 - g;
			b = 255 - b;
			
			//檢測各通道值是否超出范圍
			if(r > 255){
				r = 255;
			}else if(r < 0){
				r = 0;
			}

			if(g > 255){
				g = 255;
			}else if(g < 0){
				g = 0;
			}

			if(b > 255){
				b = 255;
			}else if(b < 0){
				b = 0;
			}
			newPx[i] = Color.argb(a, r, g, b);			
		}
		bitmap.setPixels(newPx, 0, Width, 0, 0, Width, Height);
		return bitmap;
	}
輸入一張正常的圖片,返回的是對應的底片濾鏡。

 

可以看到

 

//各通道值顏色值反轉
			r = 255 - r;
			g = 255 - g;
			b = 255 - b;
這幾行代碼是說明一張圖片的每個像素點的顏色值都被反轉了,差不多的理解就是白變黑,黑變白。

 

再來看看效果:

\

還是比較好看的。

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