dst = createCompatibleDestImage( src, null ); inPixels[x] = a | (clamp(tr+n) << 16) | (clamp(tg+n) << 8) | clamp(tb+n); } else { inPixels[x] = a | (random(tr) << 16) | (random(tg) << 8) | random(tb); blur( inPixels, outPixels, width, radius ); setRGB( dst, 0, y, width, 1, outPixels ); } else setRGB( dst, 0, y, width, 1, inPixels );
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); } }
@Override public void paint(Canvas canvas, Look look) { Colors colors = look.colors(); BrushedMetalFilter filter = new BrushedMetalFilter(); filter.setColor(colors.background().getRGB()); filter.setRadius(10); filter.setAmount(0.15f); filter.setMonochrome(true); filter.setShine(0.2f); canvas.applyFilter(filter); }
int height = src.getHeight(); pt = createProgressTracker(height); dst = createCompatibleDestImage(src, null); inPixels[x] = a | (clamp(tr+n) << 16) | (clamp(tg+n) << 8) | clamp(tb+n); } else { inPixels[x] = a | (random(tr) << 16) | (random(tg) << 8) | random(tb); blur( inPixels, outPixels, width, radius ); AbstractBufferedImageOp.setRGB( dst, 0, y, width, 1, outPixels ); } else { finishProgressTracker(); return dst;
@Override public BufferedImage doTransform(BufferedImage src, BufferedImage dest) { Random rand = ReseedSupport.reInitialize(); BrushedMetalFilter filter = new BrushedMetalFilter(color.getColor().getRGB(), radius.getValue(), amount.getValueAsPercentage(), true, shine.getValueAsPercentage(), NAME); filter.setRandom(rand); dest = filter.filter(src, dest); return dest; } }
dst = createCompatibleDestImage( src, null ); inPixels[x] = a | (clamp(tr+n) << 16) | (clamp(tg+n) << 8) | clamp(tb+n); } else { inPixels[x] = a | (random(tr) << 16) | (random(tg) << 8) | random(tb); blur( inPixels, outPixels, width, radius ); setRGB( dst, 0, y, width, 1, outPixels ); } else setRGB( dst, 0, y, width, 1, inPixels );
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); } }