public class LogScaleMapping extends ComplexImageMapping { public float hi,lo; public boolean reset; public void sample(Complex a) { float m = (float)Math.log(a.getMag()); if (reset) { hi = m; lo = m; reset = false; } else { if (m>hi) hi = m; else if (m lo onto 255 -> 0 int m = (int)(255*(Math.log(a.getMag())-lo)/(hi-lo)); if (m<0) m=0; if (m>255) m=255; return( (255 << 24) | (m<<16) | (m<<8) | m ); } public boolean needsPreRun() { return true; } public void initialise() { reset = true; } public void complete() { System.out.println("ScaledMapping : hi,lo = "+hi+" "+lo); } }