@Override
public void done(Image image) {
imageLayer1 = graphics().createImageLayer(image);
surfaceLayer1 = graphics().createSurfaceLayer(image.width(), image.height());
surfaceLayer1.surface().drawImage(image, 0, 0);
CanvasImage canvas1 = graphics().createImage(image.width(), image.height());
canvas1.canvas().drawImage(image, 0, 0);
canvasLayer1 = graphics().createImageLayer(canvas1);
imageLayer2 = graphics().createImageLayer(image);
surfaceLayer2 = graphics().createSurfaceLayer(image.width(), image.height());
surfaceLayer2.surface().drawImage(image, 0, 0);
CanvasImage canvas2 = graphics().createImage(image.width(), image.height());
canvas2.canvas().drawImage(image, 0, 0);
canvasLayer2 = graphics().createImageLayer(canvas2);
imageLayer1.transform().translate(offset, offset);
rootLayer.add(imageLayer1);
surfaceLayer1.transform().translate(offset + width, offset);
rootLayer.add(surfaceLayer1);
canvasLayer1.transform().translate(offset + 2 * width, offset);
rootLayer.add(canvasLayer1);
imageLayer2.transform().translate(offset, offset + 2 * height);
rootLayer.add(imageLayer2);
surfaceLayer2.transform().translate(offset + width, offset + 2 * height);
rootLayer.add(surfaceLayer2);
canvasLayer2.transform().translate(offset + 2 * width, offset + 2 * height);
rootLayer.add(canvasLayer2);
}