Android 把bitmap图片的某一部分的颜色改成其他颜色
把bitmap图片的某一部分的颜色改成其他颜色
private Bitmap ChangeBitmap(Bitmap bitmap){ int bitmap_h; int bitmap_w; int mArrayColorLengh; int[] mArrayColor; int count = 0; mArrayColorLengh = bitmap.getWidth() * bitmap.getHeight(); mArrayColor = new int[mArrayColorLengh]; bitmap_w=bitmap.getWidth(); bitmap_h =bitmap.getHeight(); int newcolor=-1; for (int i = 0; i < bitmap.getHeight(); i++) { for (int j = 0; j < bitmap.getWidth(); j++) { //获得Bitmap 图片中每一个点的color颜色值 int color = bitmap.getPixel(j, i); //将颜色值存在一个数组中 方便后面修改 // mArrayColor[count] = color; int r = Color.red(color); int g = Color.green(color); int b = Color.blue(color); int a =Color.alpha(color); if ((90<r&&r<=200)&&(90<g&&g<=200)&&(90<b&&b<=200)){//大概得把非道路(路旁变透明) a=0; Log.i("imagecolor","============"+color); }else if (r==255&&g==255&&b==33){//把黄色的箭头白色 因为黄色箭头rgb大部分是255 255 33(值可以用画图工具取值) 组合 // 但是还有小部分有别的值组成(箭头所不能变成全白有黄色斑点) r=255; g=255; b=255; } color = Color.argb(a, r, g, b); mArrayColor[count]=color; Log.i("imagecolor","============"+ mArrayColor[count]); count++; } } mbitmap = Bitmap.createBitmap( mArrayColor, bitmap_w, bitmap_h, Bitmap.Config.ARGB_4444 ); return mbitmap; }
转载 :http://blog.****.net/dqliangjun/article/details/52287583