Android之图片Bitmap的特殊处理
来源:互联网 发布:mac迅雷怎么下电影 编辑:程序博客网 时间:2024/05/22 04:38
最近在做一个功能开发:当手指触摸屏幕的时候就出现一种特效。这里需要要五颜六色的图片来实现很绚丽效果,今天我来讲讲如何用一个简单图片如图(1)来实现如图(2)的效果!
(图1)
(图2)
由上面的(图1)可以知道其中的图象实际上是没有颜色的,其实就是白色和透明度来绘制的四个圆的效果图片!怎么才能实现右边图片的五颜六色的圆的图像呢!这里就是设计到了对bitmap图片处理!下面是对bitmap图片改变颜色的处理方法:
public static Bitmap change_bitmap_for_curr_color(Bitmap curr_Bitmap, int new_color){if(null == curr_Bitmap){return curr_Bitmap;}int BLACK_COLOR = 0xff000000;int start_x = 0;int statr_y = 0;int bitmap_w = curr_Bitmap.getWidth();int bitmap_h = curr_Bitmap.getHeight();//Log.d("yu", "FingerMagic_tool change_bitmap_for_curr_color new_color="+new_color);//0xFFFF0000new_color &= 0x00ffffff;/× 去掉要改变颜色的透明度,这里只是改变该图片颜色,其透明度不改变 ×///Log.d("FingerMagic_tool", "FingerMagic_tool change_bitmap_for_curr_color new_color="+new_color);int []pixels = new int[bitmap_w * bitmap_h]; curr_Bitmap.getPixels(pixels, 0, bitmap_w, 0, 0, bitmap_w,bitmap_h);/× 这里是取出要改变bitmap的像素数据 ×/int alph = 0;int color_int = 0;int curr_index = 0;for(int i = 0; i < bitmap_h; i++){/× 这里就是改变取出的bitnap的像素数据,是其颜色是我们要改变的颜色 ×/for(int j = 0; j < bitmap_w; j++){curr_index = bitmap_w * i + j;color_int = pixels[curr_index];if(0 == color_int){ /× 如果该像素点没有颜色,全透明则不处理 ×/continue;}alph = color_int & BLACK_COLOR; /× 取出该像素点的透明度值 ×/if(alph == 0){/× 如果这个像素点是全透明的则不做处理 ×/continue;}color_int = new_color | alph;/× 把我们需要的颜色加上该像素点的透明度来取代原来的像素点 ×/pixels[curr_index] = color_int;}} <pre name="code" class="java"> /× 最后利用我们修改完成的像素数据值来创建我们需要的图片 ×/ Bitmap result = Bitmap.createBitmap(pixels, bitmap_w, bitmap_h, Config.ARGB_8888);//result.setPixels(pixels, 0, bitmap_w, 0, 0, bitmap_w, bitmap_h);return result;}
这就可以了!所有的关键点,我都加上注释了。
不过,对于上面的代码还是存在缺陷的,请不要用来处理超大的bitmap, 很有可能溢出哦!还有,如果处理不只一个小图片,请开辟线程来处理哦。
0 0
- Android之图片Bitmap的特殊处理
- android之bitmap处理图片
- Android Bitmap图片的处理
- android 处理图片之--bitmap处理
- android 处理图片之--bitmap处理
- android 处理图片之--bitmap处理
- android 处理图片之--bitmap处理
- android图片处理之bitmap、colormatrix
- Android工具类之Bitmap图片处理
- Android工具类之Bitmap图片处理
- Android图片处理之Bitmap类
- Android bitmap图片处理
- Android bitmap图片处理
- android bitmap 图片处理
- Android bitmap图片处理
- Android bitmap图片处理
- Android bitmap图片处理
- Android bitmap图片处理
- flex4 dataGrid 单元格内加超链接
- C++中创建路径和删除路径
- Windows 常用dos命令大全
- 为官一任,造福一方,以民为本---《官途》刘飞(梦如洪荒著)
- flex4 自定义右键菜单
- Android之图片Bitmap的特殊处理
- 统计字符
- iOS 更改webView文字颜色丶文字大小丶背景色的方法
- 使用Flex4开启用户的摄像头,并且拍照保存
- 我们这一代人的困惑
- StringTokenizer类
- c++面试题目(3)
- stm32GPIO 学习
- LINUX CGI编程