(2)Bitmap类相关——extractAlpha
1. public Bitmap extractAlpha()
生成只提取了原图的alpha通道的新图,也就是说新的bitmap只有alpha值,rgb值为0。这个函数的作用是获取原图的轮廓,然后可以填充rgb值。因此可以实现阴影,影子,光晕等效果。
使用如下的代码片段来验证这个函数:
1 2 3 4 5 6 7 8 9 10 11 12 | public Bitmap process() { Bitmap destImage = Bitmap.createBitmap( 400 , 400 , Config.ARGB_8888); int color = 0xAFFF0000 ; //半透明红色<br> //0x00FF0000 //透明红色<br> //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所在的容器以淡绿色作背景。
从上面的三组处理结果可以得出结论:
(1)该函数只提取aplha通道,rgb通道值为0。这是因为原图是红色,新图只有透明通道。
(2)新图保留了原图的alpha通道值,原图如果是半透明的,新图也是半透明的,如图一,原图是透明的,新图也是透明的,如图二,原图是不透明的,新图也不透明,如图三。
这样得到的绘制到canvas上时,argb通道值会依据Paint的颜色值绘制。如果原bitmap没有alpha通道,实验结果如透明,说明新图alpha通道为0。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步