You should not need to clone an Image. I mean, an Image is just a Quad with a Texture, and a Quad’s vertices are always laid out the same way. So if you do
q1 = new Quad(w, h);
q2 = new Quad(w, h);
It’s the same as cloning them as the data is the same, provided you use the same w and h (which you can read off the first).
Similarly if you do
image2 = new Image(image1.texture);
You are effectively cloning it – creating a new image with the same texture and vertex layout as the first.