J2ME - 如何在Canvas中将区域复制到Image中?

时间:2014-06-06 07:13:08

标签: java-me

我想用x和y坐标复制Canvas中的任何区域,然后将其粘贴到任何图像。

例如:

Image image = Image.createImage(30, 20);
image.drawImage(canvas);

1 个答案:

答案 0 :(得分:0)

无法复制CanvasGameCanvas的数据。

要达到你想要的效果,你必须使用双重缓冲。这意味着,您必须使用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}}对象。

使用像这样的双缓冲器当然会减慢某些设备上的速度,但如果你想能够“提取”屏幕的某些部分,就无法以其他方式进行操作。