Android图像处理——熔铸效果

来源:互联网 发布:珠海java培训机构 编辑:程序博客网 时间:2024/05/17 09:25

Android图像处理——熔铸效果

熔铸效果原理:

r = r * 127 / (g + b + 1);g = g * 127 / (r + b + 1);b = b * 127 / (r + g + 1);

代码:

/** * 熔铸效果 * @param bitmap * @return */public static Bitmap handleCastingEffect(Bitmap bitmap) {    int width = bitmap.getWidth();    int height = bitmap.getHeight();    int color, a, r, g, b;    Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);    int[] oldPx = new int[width * height];    int[] newPx = new int[width * height];    bitmap.getPixels(oldPx, 0, width, 0, 0, width, height);    for (int i = 0; i < oldPx.length; i++) {        color = oldPx[i];        a = Color.alpha(color);        r = Color.red(color);        g = Color.green(color);        b = Color.blue(color);        r = r * 127 / (g + b + 1);        g = g * 127 / (r + b + 1);        b = b * 127 / (r + g + 1);        if (r < 0) {            r = 0;        } else if (r > 255) {            r = 255;        }        if (g < 0) {            g = 0;        } else if (g > 255) {            g = 255;        }        if (b < 0) {            b = 0;        } else if (b > 255) {            b = 255;        }        newPx[i] = Color.argb(a, r, g, b);    }    bmp.setPixels(newPx, 0, width, 0, 0, width, height);    return bmp;}

效果如下:

原图:

原图

效果图:

熔铸效果

原创粉丝点击