天天看點

Android Bitmap 加載與像素操作Android Bitmap 加載與像素操作

一:加載與像素讀寫

在Android SDK中,圖像的像素讀寫可以通過getPixel與setPixel兩個Bitmap的API實作。Bitmap API讀取像素的代碼如下:

得到像素pixel是32位的整數,四個位元組分别對應透明通道、紅色、綠色、藍色通道。Bitmap API 寫入像素,代碼如下:

通過Color.argb重新組裝成一個int的像素值。

使用BitmapFactory.decodeFile或者decodeResource等方法實作加載圖像的Bitmap對象時,這些方法就會為要建構的Bitmap對象配置設定合适大小的記憶體,如果原始的圖像檔案資料很大,就會導緻DVM不能配置設定請求的記憶體大小,進而導緻OOM(out of memory)問題。而通過配置BitmapFactory.Option預先讀取圖像高度與寬帶,圖像進行适當的下采樣,就可以避免OOM問題的發生。預先隻擷取圖像高度與寬帶的代碼如下:

基于下采樣加載超大Bitmap圖像的縮小版本:

二:像素操作

android彩色圖像灰階化的三個簡單方法

灰階化方法一:

灰階值GRAY = (max(red, green, blue) + min(red, green, blue))/2

灰階化方法二:

灰階值GRAY = (red + green + blue)/3

灰階化方法三:

灰階值GRAY = red*0.3 + green*0.59 + blue*0.11

代碼實作如下:

Bitmap圖像鏡像映射與亮度調整的代碼實作如下:

運作截圖:

Android Bitmap 加載與像素操作Android Bitmap 加載與像素操作

布局XML檔案内容如下:

MainActivity中的onCreate方法的代碼如下:

-第一次嘗試用CSDN-markdown編輯器寫文章,發現這個東西真好用!贊!!!

-gloomyfish@2015-07-02

繼續閱讀