(2)Bitmap類相關——extractAlpha

1. public Bitmap extractAlpha()java

生成只提取了原圖的alpha通道的新圖,也就是說新的bitmap只有alpha值,rgb值爲0。這個函數的做用是獲取原圖的輪廓,而後能夠填充rgb值。所以能夠實現陰影,影子,光暈等效果。canvas

使用以下的代碼片斷來驗證這個函數:函數

public Bitmap process() {
	Bitmap destImage = Bitmap.createBitmap(400,
			400, Config.ARGB_8888);
	int color = 0xAFFF0000; //半透明紅色
            //0x00FF0000 //透明紅色
            //0xFFFF0000 //不透明紅色 for(int i = 0; i < destImage.getWidth(); i++){ for(int j = 0; j < destImage.getHeight(); j++){ destImage.setPixel(i, j, color);//生成400x400分辨率的顏色爲color的原圖bitmap } } Log.d(TAG, "--" + TAG + ">>process>>"); return destImage.extractAlpha();//生成提取了原bitmap alpha通道的新圖bitmap }

 

處理後的圖片應用給無背景色的ImageView,ImageView所在的容器以淡綠色做背景。3d

從上面的三組處理結果能夠得出結論:blog

(1)該函數只提取aplha通道,rgb通道值爲0。這是由於原圖是紅色,新圖只有透明通道。圖片

(2)新圖保留了原圖的alpha通道值,原圖若是是半透明的,新圖也是半透明的,如圖一,原圖是透明的,新圖也是透明的,如圖二,原圖是不透明的,新圖也不透明,如圖三。get

 

這樣獲得的繪製到canvas上時,argb通道值會依據Paint的顏色值繪製。若是原bitmap沒有alpha通道,實驗結果如透明,說明新圖alpha通道爲0。it

相關文章
相關標籤/搜索