Android Bitmap 变色

一张图是 a*b 像素, 即有 a*b个像素点


//改变 bitmap 颜色

private Bitmap sharkColor(Bitmap mBitmap) {
    int mBitmapWidth = mBitmap.getWidth();
    int mBitmapHeight = mBitmap.getHeight();
    int mArrayColorLengh = mBitmapWidth * mBitmapHeight; 
    int[] mArrayColor = new int[mArrayColorLengh];
    int count = 0;
    for (int i = 0; i < mBitmapHeight; i++) {//高(宽循环) =》一行一行
        for (int j = 0; j < mBitmapWidth; j++) {
            //获得Bitmap 图片中每一个点的color颜色值
            int color = mBitmap.getPixel(j, i);


            //将颜色值存在一个数组中 方便后面修改
//                mArrayColor[count] = color;


            //如果你想做的更细致的话 可以把颜色值的A R G B 拿到做响应的处理
            int a = Color.alpha(color);
            int r = Color.red(color);
            int g = Color.green(color);
            int b = Color.blue(color);
            System.out.println(r+"red");
            /*
            r 变小 偏青
            g 变小 偏洋红
            b 变小 偏黄
             */
            int newColor = Color.argb(a, r>>5, g, b);
            mArrayColor[count] = newColor;


            count++;
        }

    }

    //以新的颜色数组 填充

    Bitmap bitmap = Bitmap.createBitmap(mArrayColor, mBitmapWidth, mBitmapHeight, Bitmap.Config.ARGB_4444);
    return bitmap;
}

你可能感兴趣的:(Android,图片处理)