一:加載與像素讀寫
在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圖像鏡像映射與亮度調整的代碼實作如下:
運作截圖:
布局XML檔案内容如下:
MainActivity中的onCreate方法的代碼如下:
-第一次嘗試用CSDN-markdown編輯器寫文章,發現這個東西真好用!贊!!!
-gloomyfish@2015-07-02