Вы должны иметь возможность использовать тот же холст, что и источник и назначение вызова Canvas.drawImage
:
CanvasImage image = graphics().createImage(100, 100);
// draw stuff in your canvas image
// define the source of the copyArea: 15x15+5+5
float sx = 5, sy = 5, swidth = 15, sheight = 15;
// note that we use swidth/sheight for dwidth/dheight because we don't want to scale,
// we just want to copy data from one place in the image to another
image.canvas().drawImage(image, 25, 25, swidth, sheight, sx, sy, swidth, sheight);
Однако, если вы действительно отображаете все на холст в каждом кадре, вывероятно, вы обнаружите, что это очень медленно.Вам будет лучше реструктурировать вещи, чтобы использовать ImageLayer и другие конструкции, которые могут быть аппаратно ускорены.