public int filterRGB(int x, int y, int rgb) { int a = (rgb >> 24) & 0xff; int r = (rgb >> 16) & 0xff; int g = (rgb >> 8) & 0xff; int b = rgb & 0xff; if ( a == 255 ) return 0xffffffff; float f = ImageMath.smoothStep(lowerThreshold, upperThreshold, (float)a); a = (int)(f * 255); if ( a < 0 ) a = 0; else if ( a > 255 ) a = 255; return (a << 24) | 0xffffff; }
public int filterRGB(int x, int y, int rgb) { int a = (rgb >> 24) & 0xff; float v = randomNumbers.nextFloat(); float f = ImageMath.smoothStep( minDensity, maxDensity, v ); return ((int)(a * f) << 24) | rgb & 0x00ffffff; }
@Override public int filterRGB(int x, int y, int rgb) { // int a = rgb & 0xff000000; int r = (rgb >> 16) & 0xff; int g = (rgb >> 8) & 0xff; int b = rgb & 0xff; int l = r + g + b; float f = ImageMath.smoothStep(lowerThreshold3, upperThreshold3, l); return ImageMath.mixColors(f, black, white); }
public int filterRGB(int x, int y, int rgb) { int a = rgb & 0xff000000; int r = (rgb >> 16) & 0xff; int g = (rgb >> 8) & 0xff; int b = rgb & 0xff; int l = r + g + b; float f = ImageMath.smoothStep(lowerThreshold3, upperThreshold3, l); return ImageMath.mixColors(f, black, white); }
public int filterRGB(int x, int y, int rgb) { float nx = m00*x + m01*y; float ny = m10*x + m11*y; if (sides == 2) nx = (float)Math.sqrt(nx*nx + ny*ny); else if (sides == 3) nx = ImageMath.mod(nx, 16); else if (sides == 4) nx = symmetry(nx, 16); int alpha = (int)(ImageMath.smoothStep(fadeStart, fadeStart+fadeWidth, nx) * 255); if (invert) alpha = 255-alpha; return (alpha << 24) | (rgb & 0x00ffffff); }
public int filterRGB(int x, int y, int rgb) { int v = PixelUtils.brightness( rgb ); float f = ImageMath.smoothStep( lowerThreshold, upperThreshold, v ); return (rgb & 0xff000000) | (ImageMath.mixColors( f, black, white ) & 0xffffff); }
int v = PixelUtils.brightness( maskRGB ); int iv = PixelUtils.brightness( inRGB ); float f = 1-ImageMath.smoothStep( iv-s, iv+s, v ); int a = (int)(255 * f); inPixels[x] = (inRGB & 0xff000000) | (a << 16) | (a << 8) | a; int mg = (maskRGB >> 8) & 0xff; int mb = maskRGB & 0xff; int r = (int)(255 * (1-ImageMath.smoothStep( ir-s, ir+s, mr ))); int g = (int)(255 * (1-ImageMath.smoothStep( ig-s, ig+s, mg ))); int b = (int)(255 * (1-ImageMath.smoothStep( ib-s, ib+s, mb ))); inPixels[x] = (inRGB & 0xff000000) | (r << 16) | (g << 8) | b;
f *= 1-ImageMath.smoothStep(gain, 1.0f, f);
int inRGB = inPixels[x]; int v = PixelUtils.brightness( maskRGB ); float f = ImageMath.smoothStep( lower, upper, v ); int a = (int)(255 * f);
int v = PixelUtils.brightness(maskRGB); int iv = PixelUtils.brightness(inRGB); float f = 1 - ImageMath.smoothStep(iv - s, iv + s, v); int a = (int) (255 * f); inPixels[x] = (inRGB & 0xff000000) | (a << 16) | (a << 8) | a; int mg = (maskRGB >> 8) & 0xff; int mb = maskRGB & 0xff; int r = (int) (255 * (1 - ImageMath.smoothStep(ir - s, ir + s, mr))); int g = (int) (255 * (1 - ImageMath.smoothStep(ig - s, ig + s, mg))); int b = (int) (255 * (1 - ImageMath.smoothStep(ib - s, ib + s, mb))); inPixels[x] = (inRGB & 0xff000000) | (r << 16) | (g << 8) | b;
float dy2 = dy*dy; float R = (float)Math.sqrt( dx2+dy2 ); float f2 = 1-ImageMath.smoothStep( R, R+1, l ); f = Math.min( f, f2 );
private float map(float v) { if (repeat) v = v > 1.0 ? 2.0f-v : v; switch (interpolation) { case INT_CIRCLE_UP: v = ImageMath.circleUp(ImageMath.clamp(v, 0.0f, 1.0f)); break; case INT_CIRCLE_DOWN: v = ImageMath.circleDown(ImageMath.clamp(v, 0.0f, 1.0f)); break; case INT_SMOOTH: v = ImageMath.smoothStep(0, 1, v); break; } return v; }
public float evaluate(float x, float y) { float v = original.evaluate( x, y ); switch ( bumpShape ) { case 1: // v = v > 0.5f ? 0.5f : v; v *= ImageMath.smoothStep( 0.45f, 0.55f, v ); break; case 2: v = v < 0.5f ? 0.5f : v; break; case 3: v = ImageMath.triangle( v ); break; case 4: v = ImageMath.circleDown( v ); break; case 5: v = ImageMath.gain( v, 0.75f ); break; } return v; } };
public int filterRGB(int x, int y, int rgb) { float nx = m00*x + m01*y; float ny = m10*x + m11*y; nx /= scale; ny /= scale * stretch; float f = Noise.noise2(nx, ny); f += 0.1f*turbulence * Noise.noise2(nx*0.05f, ny*20); f = (f * 0.5f) + 0.5f; f *= rings*50; f = f-(int)f; f *= 1-ImageMath.smoothStep(gain, 1.0f, f); f += fibres*Noise.noise2(nx*scale, ny*50); int a = rgb & 0xff000000; int v; if (colormap != null) v = colormap.getColor(f); else { v = PixelUtils.clamp((int)(f*255)); int r = v << 16; int g = v << 8; int b = v; v = a|r|g|b; } return v; }
@Override public int getPixel(int x, int y, int[] inPixels, int width, int height) { float nx = m00 * x + m01 * y; float ny = m10 * x + m11 * y; nx /= scale; ny /= scale * stretch; nx += 1000; ny += 1000; // Reduce artifacts around 0,0 float f = evaluate(nx, ny); Point[] results = resultsTL.get(); float f1 = results[0].distance; int srcx = ImageMath.clamp((int) ((results[0].x - 1000) * scale), 0, width - 1); int srcy = ImageMath.clamp((int) ((results[0].y - 1000) * scale), 0, height - 1); int v = inPixels[srcy * width + srcx]; if (fadeEdges) { float f2 = results[1].distance; srcx = ImageMath.clamp((int) ((results[1].x - 1000) * scale), 0, width - 1); srcy = ImageMath.clamp((int) ((results[1].y - 1000) * scale), 0, height - 1); int v2 = inPixels[srcy * width + srcx]; v = ImageMath.mixColors(0.5f * f1 / f2, v, v2); } else { f = 1 - ImageMath.smoothStep(edgeThickness, edgeThickness + fuzziness, f1); v = ImageMath.mixColors(f, edgeColor, v); } return v; }
@Override public int getPixel(int x, int y, int[] inPixels, int width, int height) { float nx = m00 * x + m01 * y; float ny = m10 * x + m11 * y; nx /= scale; ny /= scale * stretch; nx += 1000; ny += 1000; // Reduce artifacts around 0,0 //noinspection UnusedAssignment float f = evaluate(nx, ny); Point[] results = resultsTL.get(); float f1 = results[0].distance; float f2 = results[1].distance; int srcx = ImageMath.clamp((int) ((results[0].x - 1000) * scale), 0, width - 1); int srcy = ImageMath.clamp((int) ((results[0].y - 1000) * scale), 0, height - 1); int v = inPixels[srcy * width + srcx]; f = (f2 - f1) / edgeThickness; f = ImageMath.smoothStep(0, edgeThickness, f); if (fadeEdges) { srcx = ImageMath.clamp((int) ((results[1].x - 1000) * scale), 0, width - 1); srcy = ImageMath.clamp((int) ((results[1].y - 1000) * scale), 0, height - 1); int v2 = inPixels[srcy * width + srcx]; v2 = ImageMath.mixColors(0.5f, v2, v); v = ImageMath.mixColors(f, v2, v); } else { v = ImageMath.mixColors(f, edgeColor, v); } return v; }
case SPLINE: t = ImageMath.smoothStep(0.15f, 0.85f, t); break; case CIRCLE_UP:
public int getPixel(int x, int y, int[] inPixels, int width, int height) { float nx = m00*x + m01*y; float ny = m10*x + m11*y; nx /= scale; ny /= scale * stretch; nx += 1000; ny += 1000; // Reduce artifacts around 0,0 float f = evaluate(nx, ny); float f1 = results[0].distance; int srcx = ImageMath.clamp((int)((results[0].x-1000)*scale), 0, width-1); int srcy = ImageMath.clamp((int)((results[0].y-1000)*scale), 0, height-1); int v = inPixels[srcy * width + srcx]; if (fadeEdges) { float f2 = results[1].distance; srcx = ImageMath.clamp((int)((results[1].x-1000)*scale), 0, width-1); srcy = ImageMath.clamp((int)((results[1].y-1000)*scale), 0, height-1); int v2 = inPixels[srcy * width + srcx]; v = ImageMath.mixColors(0.5f*f1/f2, v, v2); } else { f = 1-ImageMath.smoothStep(edgeThickness, edgeThickness+fuzziness, f1); v = ImageMath.mixColors(f, edgeColor, v); } return v; }
v = inPixels[srcy * width + srcx]; f = (results[1].distance - results[0].distance) / (results[1].distance + results[0].distance); f = ImageMath.smoothStep(coefficients[1], coefficients[0], f); v = ImageMath.mixColors(f, 0xff000000, v);
public int getPixel(int x, int y, int[] inPixels, int width, int height) { float nx = m00*x + m01*y; float ny = m10*x + m11*y; nx /= scale; ny /= scale * stretch; nx += 1000; ny += 1000; // Reduce artifacts around 0,0 float f = evaluate(nx, ny); float f1 = results[0].distance; float f2 = results[1].distance; int srcx = ImageMath.clamp((int)((results[0].x-1000)*scale), 0, width-1); int srcy = ImageMath.clamp((int)((results[0].y-1000)*scale), 0, height-1); int v = inPixels[srcy * width + srcx]; f = (f2 - f1) / edgeThickness; f = ImageMath.smoothStep(0, edgeThickness, f); if (fadeEdges) { srcx = ImageMath.clamp((int)((results[1].x-1000)*scale), 0, width-1); srcy = ImageMath.clamp((int)((results[1].y-1000)*scale), 0, height-1); int v2 = inPixels[srcy * width + srcx]; v2 = ImageMath.mixColors(0.5f, v2, v); v = ImageMath.mixColors(f, v2, v); } else v = ImageMath.mixColors(f, edgeColor, v); return v; }