我想用x和y坐标复制Canvas中的任何区域,然后将其粘贴到任何图像。
例如:
Image image = Image.createImage(30, 20);
image.drawImage(canvas);
答案 0 :(得分:0)
无法复制Canvas
或GameCanvas
的数据。
要达到你想要的效果,你必须使用双重缓冲。这意味着,您必须使用Image bufferImg
作为缓冲区进行绘制,然后将bufferImg
绘制到Canvas
上。
这样,您可以将Image
复制到另一个Image
上,如下所示:
bufferImg.getRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height);
然后
g.drawRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height, boolean processAlpha);
其中g
是您想要绘制的第二个Graphics
的{{1}}对象。
使用像这样的双缓冲器当然会减慢某些设备上的速度,但如果你想能够“提取”屏幕的某些部分,就无法以其他方式进行操作。