2013-04-20 5 views
0

다음 pointerevent에서 사용할 캔버스의 현재 상태를 이미지로 저장하려고합니다. 다시 그리기를 사용하면 캔버스가 지워지고 캔버스의 이전 상태를 가져올 수 없습니다. 그래서 이미지로 저장 한 다음 반복하여 반복해서 원하는 것을 만들 수 있습니다. 마지막 질문은 캔버스를 이미지로 저장하는 방법입니다. 또는 Graphics 객체를 바이트 배열로 변환 할 수 있습니까?캔버스를 j2me의 이미지로 저장하는 방법은 무엇입니까?

답변

1

캔버스를 이미지로 저장할 수 없습니다.

먼저 이미지를 만들어야하고 그 이미지에 페인트 할 수 있습니다.

기본적으로 이미지를 그려야하므로 이미지를 캔버스에 그려야하기 때문에 Midlet이 더 많은 작업을 수행한다는 의미입니다. 그러나 그것은 당신이 원하는 것을 할 수있는 유일한 방법입니다.

1

Image 화면의 너비와 높이가 동일해야합니다. 캔버스 상태를 저장하려면 Canvas.paintGraphics 이미지를 전달하십시오.

class MyCanvas extends Canvas { 
    private Image lastScreen; 

    protected void sizeChanged(int w, int h) { 
    if (lastScreen == null || w != lastScreen.getWidth() 
     || h != lastScreen.getHeight) { 
     lastScreen = Image.createImage(w, h); 
    } 
    } 

    protected void paint(Graphics g) { 
    // paint the whole screen 
    } 

    protected void pointerReleased(int x, int y) { 
    paint(lastScreen.getGraphics()); 
    } 
} 
관련 문제