安卓实现BMP过滤某颜色显示或者透明显示的方法
来源:互联网 发布:php 直播间 编辑:程序博客网 时间:2024/05/23 07:25
如果有需要 设置上层不带alpha通道的bitmap的某种颜色为透明,从而显示被此颜色掩盖的下层那些像素的需求 的人可以参考一下我的方法,没有技术含量,但是可用。
下面是截取代码里的小段,原始的bitmap是通过自写文件头然后读取文件中的图像数据生成图片字节数组,再由BitmapFactory.decodeByteArray方法产生的(这个文件是由很多张RGB565的BMP图片去掉文件头后组成的),所以我这个bitmap没有alpha通道。
思路是通过此bitmap的copy方法创建一个可编辑的带通道bitmap,遍历需要透明处理的颜色,设置alpha通道为0,然后配合paint.setalpha就可以实现透明或者过滤效果了。
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapbyte, 0, bitmapbyte.length, bmpFactoryOptions);//源图片Bitmap bitmappic = bitmap.copy(Bitmap.Config.ARGB_8888 ,true);//isMutable = true;int Width = bitmappic.getWidth();int Height = bitmappic.getHeight();int color;for (int px=0;px<Width;px++){ for (int py=0;py<Height;py++){ color = bitmappic.getPixel(px,py); if (color==0xfff800f8) bitmappic.setPixel(px, py, 0x00000000);//源图片copy操作之后我手动找了下,过滤色color值为0xf800f8 }}//////////////////////////////////////////////paint.setAlpha(250);//之后可以在可用的canvas里设置paint的alpha值,不要到255,高一点就好了canvas.drawBitmap(bitmappic, 0, 0, paint);//如果背景有图片,就可以看到透明的效果了
可以看出,paint是配合bitmap的alpha通道来实现透明的。
0 0
- 安卓实现BMP过滤某颜色显示或者透明显示的方法
- 显示透明背景BMP的例子
- WINCE 下实现类TransparenBlt 的BMP 透明色显示功能
- ComboBox的label显示颜色或者图片
- 利用TextArea 定义不同的显示颜色或者显示格式
- 安卓 ProgressBar 显示小数的方法
- 显示透明图片的方法汇总
- SeekBar中thumb的透明背景显示父布局颜色
- 如何实现掩码位图的透明显示
- 如何实现掩码位图的透明显示
- MFC中实现位图的透明显示
- 如何实现掩码位图的透明显示
- 安卓透明颜色设置
- Flex Image控件显示BMP图片实现方法
- 一个简单方法实现bmp背景透明
- 透明位图的显示
- 透明位图的显示
- 透明位图的显示
- Python入门经典——编程项目(一)
- 新装的Ubuntu14.04网卡驱动问题
- select默认选择的实现方法
- ROS探索总结(三)——ROS新手教程
- 印迎最有争议新总理“印度教至上悲剧”仍留阴影
- 安卓实现BMP过滤某颜色显示或者透明显示的方法
- Java:switch语句所支持的数据类型
- CDOJ 方老师开橙卡
- 浏览器中的Flash 鼠标滚轮事件
- ZOJ 3710 Friends(暴力或map)
- 什么是BogoMIPS?
- ROS探索总结(四)——简单的机器人仿真
- Linux中关于双引号,单引号和反引号的区别
- Java框架JSON-RPC项目demo代码实战