jpanel의 특정 영역을 bufferedImage로 변환하거나 다른 형식을 다른 jpanel에 표시해야합니다.JPanel의 영역을 BufferedImage로 변환
지금까지 전체 jpanel을 bufferedImage로 변환하는 코드 만 보았습니다.하지만 제 경우에는 jpanel 내부에 영역이 필요합니다.
감사
jpanel의 특정 영역을 bufferedImage로 변환하거나 다른 형식을 다른 jpanel에 표시해야합니다.JPanel의 영역을 BufferedImage로 변환
지금까지 전체 jpanel을 bufferedImage로 변환하는 코드 만 보았습니다.하지만 제 경우에는 jpanel 내부에 영역이 필요합니다.
감사
요청 된 크기의 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();
}
가장 쉬운 아마 Robot.createScreenCapture()
당신은 좌표계 화면 패널의 좌표 시스템에서 번역해야 할 것이다. Component.getBounds() 및 Component.getLocationOnScreen()을 참조하십시오. 지금까지
귀하가 참조한 링크가 로컬 인 것으로 보이는 경우, 누군가가 무고한 실수로 당신을 무너 뜨리기 전에 업데이트하고 싶을 수 있습니다. –
, 나는 단지 BufferedImage에 전체 JPanel의 변환 코드를보고 있지만, 내 경우에는, 나는 JPanel의 내부에 단지 면적이 필요합니다.
그런 다음 이미지를 가져 와서 원하는 이미지를 새로운 이미지로 다시 칠하면 완료됩니다.
오스카 - 당신은 어디에서 당신의 평판을 보냈습니까 ?? 하사품? ^^ –
10K에 도달 할 때마다 다시 태어납니다. – OscarRyz
이미 전체 코드를 BufferedImage
으로 변환하는 코드가 있으므로이 코드를 사용하면 BufferedImage
에 getSubImage
을 호출하여 하위 영역을 가져올 수 있습니다.
페인트 (그래픽) 대신 printAll (그래픽)을 사용해야 할 수도 있습니다. 나는 그것이 이런 종류의 일에 권장되는 방법이라고 생각합니다. –