public void blur( int[] in, int[] out, int width, int radius ) { int widthMinus1 = width-1; int r2 = 2*radius+1; int tr = 0, tg = 0, tb = 0; for ( int i = -radius; i <= radius; i++ ) { int rgb = in[mod(i, width)]; tr += (rgb >> 16) & 0xff; tg += (rgb >> 8) & 0xff; tb += rgb & 0xff; } for ( int x = 0; x < width; x++ ) { out[x] = 0xff000000 | ((tr/r2) << 16) | ((tg/r2) << 8) | (tb/r2); int i1 = x+radius+1; if ( i1 > widthMinus1 ) i1 = mod( i1, width ); int i2 = x-radius; if ( i2 < 0 ) i2 = mod( i2, width ); int rgb1 = in[i1]; int rgb2 = in[i2]; tr += ((rgb1 & 0xff0000)-(rgb2 & 0xff0000)) >> 16; tg += ((rgb1 & 0xff00)-(rgb2 & 0xff00)) >> 8; tb += (rgb1 & 0xff)-(rgb2 & 0xff); } }
public void blur( int[] in, int[] out, int width, int radius ) { int widthMinus1 = width-1; int r2 = 2*radius+1; int tr = 0, tg = 0, tb = 0; for ( int i = -radius; i <= radius; i++ ) { int rgb = in[mod(i, width)]; tr += (rgb >> 16) & 0xff; tg += (rgb >> 8) & 0xff; tb += rgb & 0xff; } for ( int x = 0; x < width; x++ ) { out[x] = 0xff000000 | ((tr/r2) << 16) | ((tg/r2) << 8) | (tb/r2); int i1 = x+radius+1; if ( i1 > widthMinus1 ) i1 = mod( i1, width ); int i2 = x-radius; if ( i2 < 0 ) i2 = mod( i2, width ); int rgb1 = in[i1]; int rgb2 = in[i2]; tr += ((rgb1 & 0xff0000)-(rgb2 & 0xff0000)) >> 16; tg += ((rgb1 & 0xff00)-(rgb2 & 0xff00)) >> 8; tb += (rgb1 & 0xff)-(rgb2 & 0xff); } }
public static void blur(int[] in, int[] out, int width, int radius) { int widthMinus1 = width-1; int r2 = 2*radius+1; int tr = 0, tg = 0, tb = 0; for ( int i = -radius; i <= radius; i++ ) { int rgb = in[mod(i, width)]; tr += (rgb >> 16) & 0xff; tg += (rgb >> 8) & 0xff; tb += rgb & 0xff; } for ( int x = 0; x < width; x++ ) { out[x] = 0xff000000 | ((tr/r2) << 16) | ((tg/r2) << 8) | (tb/r2); int i1 = x+radius+1; if ( i1 > widthMinus1 ) { i1 = mod(i1, width); } int i2 = x-radius; if ( i2 < 0 ) { i2 = mod(i2, width); } int rgb1 = in[i1]; int rgb2 = in[i2]; tr += ((rgb1 & 0xff0000)-(rgb2 & 0xff0000)) >> 16; tg += ((rgb1 & 0xff00)-(rgb2 & 0xff00)) >> 8; tb += (rgb1 & 0xff)-(rgb2 & 0xff); } }