熔铸滤镜(效果),就像火烧一样。
下面来看看熔铸滤镜的代码:
//熔铸
public static Bitmap FireImage(Bitmap bitmap) {
int w = bitmap.getWidth();
int h = bitmap.getHeight();
int []oldpixels = new int[w * h];
int []newpixels = new int[w * h];
int color;
int r = 0, g = 0, b = 0;
int r1 = 0, g1 = 0, b1 = 0;
bitmap.getPixels(oldpixels, 0, w, 0, 0, w, h);
Bitmap result = Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565);
for (int i = 0; i < h; i++){
for (int k = 0; k < w; k++){
//获取前一个像素颜色
color = oldpixels[w * i + k];
r = Color.red(color);
g = Color.green(color);
b = Color.blue(color);
//R 分量
r1 = r * 128 / (g + b + 1);
//G 分量
g1 = g * 128 / (b + r + 1);
//B 分量
b1 = b * 128 / (r + g + 1);
//检查各点像素值是否超出范围
if(r1 < 0){
r1 = 0;
}else if (r1 > 255) {
r1 = 255;
}
if(g1 < 0){
g1 = 0;
}else if (g1 > 255) {
g1 = 255;
}
if(b1 < 0){
b1 = 0;
}else if (b1 > 255) {
b1 = 255;
}
newpixels[w * i + k] = Color.rgb(r1, g1, b1);
}
}
result.setPixels(newpixels, 0, w, 0, 0, w, h);
return result;
}
//熔铸
pu