2010-01-14 3 views
2

jpanel의 특정 영역을 bufferedImage로 변환하거나 다른 형식을 다른 jpanel에 표시해야합니다.JPanel의 영역을 BufferedImage로 변환

지금까지 전체 jpanel을 bufferedImage로 변환하는 코드 만 보았습니다.하지만 제 경우에는 jpanel 내부에 영역이 필요합니다.

감사

답변

2

요청 된 크기의 BufferedImage를 만들어 이미지를받습니다.
이 이미지에 그림을 그리기위한 Graphics2D를 가져 와서 JPanel에 그림을 그려주십시오.

JPanel panel = ... 
    BufferedImage image = new BufferedImage(200, 200, TYPE_INT_ARGB); 
    Graphics2D gg = image.createGraphics(); 
    try { 
     gg.translate(-100, -20); // start point of region negated 
     panel.paint(gg); 
    } finally { 
     gg.dispose(); 
    } 
+0

페인트 (그래픽) 대신 printAll (그래픽)을 사용해야 할 수도 있습니다. 나는 그것이 이런 종류의 일에 권장되는 방법이라고 생각합니다. –

1

, 나는 단지 BufferedImage에 전체 JPanel의 변환 코드를보고 있지만, 내 경우에는, 나는 JPanel의 내부에 단지 면적이 필요합니다.

그런 다음 이미지를 가져 와서 원하는 이미지를 새로운 이미지로 다시 칠하면 완료됩니다.

+0

오스카 - 당신은 어디에서 당신의 평판을 보냈습니까 ?? 하사품? ^^ –

+0

10K에 도달 할 때마다 다시 태어납니다. – OscarRyz

2

이미 전체 코드를 BufferedImage으로 변환하는 코드가 있으므로이 코드를 사용하면 BufferedImagegetSubImage을 호출하여 하위 영역을 가져올 수 있습니다.