XYData newQuadrant = new XYData(quadrant.getX() * 2 + 0, quadrant.getY() * 2 + 0);
g.drawImage(subdivide(image, level+1, newQuadrant, size, prefix), 0, 0, null);
newQuadrant = new XYData(quadrant.getX()*2 + 0, quadrant.getY()*2 + 1);
g.drawImage(subdivide(image, level+1, newQuadrant, size, prefix), 0, size.getY(), null);
newQuadrant = new XYData(quadrant.getX()*2 + 1, quadrant.getY()*2 + 0);
g.drawImage(subdivide(image, level+1, newQuadrant, size, prefix), size.getX(), 0, null);
newQuadrant = new XYData(quadrant.getX()*2 + 1, quadrant.getY()*2 + 1);
g.drawImage(subdivide(image, level+1, newQuadrant, size, prefix), size.getX(), size.getY(), null);
BufferedImage outputImage = new BufferedImage(size.getX(), size.getY(), BufferedImage.TYPE_INT_RGB);
outputImage.getGraphics().drawImage(zoomed, 0, 0, size.getX(), size.getY(), null);
write(outputImage, level, quadrant, prefix);