public void makeNoise(BufferedImage image) {
int width = image.getWidth();
int height = image.getHeight();
// the curve from where the points are taken
CubicCurve2D cc = new CubicCurve2D.Float(width * .1f, height
* RAND.nextFloat(), width * .1f, height
* RAND.nextFloat(), width * .25f, height
* RAND.nextFloat(), width * .9f, height
* RAND.nextFloat());
// creates an iterator to define the boundary of the flattened curve
PathIterator pi = cc.getPathIterator(null, 2);
Point2D tmp[] = new Point2D[200];
int i = 0;
// while pi is iterating the curve, adds points to tmp array
while (!pi.isDone()) {