code: public void foreach(PixelFunction fn) {
          Arrays.stream(points()).forEach(p -> fn.apply(p.x, p.y, pixel(p)));
      }
docs: Executes the given side effecting function on each pixel.
  
  @param fn a function that accepts 3 parameters - the x,y coordinate and the pixel at that coordinate