千金一刻莫空度,老大无成空自伤。这篇文章主要讲述android 图像的一些操作处理相关的知识,希望能为你提供帮助。
1、android中将图像进行透明度的处理
其中setPixel时总是错误是图片是不可mutable(修改、改变)。,调用copy函数copy图片后仍不行,最后用createBitmap解决问题的且效率更高。
方式一:这种方法针对与处理图像中的某些像素时候使用
文章图片
文章图片
public Bitmap getTranslateImage(Bitmap bitmap , int alpha)//alpha 0 - 255 { int w = bitmap.getWidth(); int h = bitmap.getHeight(); Bitmap bitmap2 = Bitmap.createBitmap(w , h , Bitmap.Config.ARGB_8888); for(int i = 0 ; i < h ; i++) for(int j = 0 ; j < w; j ++) { int argb = bitmap.getPixel(j , i ); int r =( argb> > 16)& 0xff; int g =( argb> > 8)& 0xff; int b =argb& 0xff; if((r + g + b)/3 > 180) { int argb2 = (alpha< < 24)|(argb & 0x00ffffff); bitmap2.setPixel(j, i, argb2); } else bitmap2.setPixel(j , i , argb); } returnbitmap2; }
View Code 方式二: 这种方法是针对图像整体进行改变透明度变化时候使用:巧妙的利用画布与画笔。画布和view的结合view.draw(canvas)将view的内容画到画布上,如android 截屏的实现:http://www.cnblogs.com/bokeofzp/p/6031231.html ,第8条
文章图片
文章图片
public Bitmap getTranslateImage2(Bitmap bitmap , int alpha) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); Bitmap bitmap2 = Bitmap.createBitmap(w , h , Bitmap.Config.ARGB_8888); // 建立Paint 物件 Paint vPaint = new Paint(); vPaint .setStyle( Paint.Style.STROKE ); //空心 vPaint .setAlpha( alpha ); //Canvas canvas = new Canvas(bitmap2); //利用bitmap2作为画布 //canvas.drawBitmap ( bitmap , 0, 0, null ); //无透明 canvas.drawBitmap ( bitmap , 0, 0, vPaint ); //有透明 ,将bitmap的图像画到画布上 returnbitmap2; }
View Code【android 图像的一些操作处理】
推荐阅读
- Android 集成支付宝支付详解
- 关于Android6.0之后的权限问题
- android权限大全
- Android SurfaceView 绘图覆盖刷新及脏矩形刷新方法
- Android主题换肤 无缝切换
- android 换肤模式总结
- android保存照片到相册的一些事
- Android 蓝牙开发之搜索配对连接通信大全
- 第24章OnLongClickListener长按事件(从零开始学Android)